【问题标题】:Deploying windows application in Visual studio 2010 Express在 Visual Studio 2010 Express 中部署 Windows 应用程序
【发布时间】:2011-04-18 05:57:08
【问题描述】:

我在 Visual Studio Express 2010 中基于 C# 开发了一个 Windows 应用程序。现在我想部署它。

我使用发布来部署,但是当我运行项目时,表单上出现错误,我使用了一些用于 I/O 操作、读取和写入文件的外部文件。

如何解决此错误?我也使用一个文件夹来存放文件。

【问题讨论】:

  • 错误是什么.. 是否与 I/O 相关.. 可能是您没有检查文件是否存在。
  • 错误是找不到这些文件的路径...
  • 甚至是可用的文件.. 您使用的是相对路径或绝对路径
  • 你能贴一些代码吗?可能只是您访问文件的部分?
  • 向我们展示您的代码(也可能是目录结构).. 然后我们会看到

标签: c# visual-studio-2010 deployment publish visual-studio-express


【解决方案1】:

我非常喜欢将 WiX 用于安装程序 - 即使您拥有带有内置 MSI 创建工具的 Visual Studio Pro

http://wix.sourceforge.net/

WiX 的好处是您几乎可以做任何事情,从超级简单到非常复杂。该工具非常棒,您可以快速上手,然后随着您的应用程序越来越受欢迎,向上移动(添加对话框等)。

安装程序的一个技巧 - 考虑使用 VMWare/HyperV,安装测试操作系统,然后在安装应用程序之前拍摄操作系统的快照。如果一切正常,那就太好了——你就完成了。但是,如果有问题,请将操作系统回滚到安装前的快照,修复错误,然后重试。

【讨论】:

    【解决方案2】:
    1. 将这些外部文件添加到项目中
    2. 在你的VS中右键点击外部文件 将构建动作设置为内容
    3. 复制到输出目录到 CopyAlways

    然后尝试部署

    【讨论】:

    • 我已经完成了 copyAlways 这个选项...我也尝试保存在 bin 文件夹中..但它仍然显示错误......
    【解决方案3】:

    这可能是由于 Windows 7 UAC 权限所致。尽管目前的书籍、msdn 甚至 Visual Studio 中的 sn-ps 都教授了文件 IO 的方法,但在考虑 UAC 时,大多数都是不正确的。

    您的所有文件操作都应在 UAC 安全区域中进行,例如 Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

    您无法读取或写入 C:\Program Files (x86) 目录中的文件,除非您已提升应用程序以使用更高权限运行。

    如果您安装应用程序并右键单击可执行文件并选择以管理员身份运行并且一切正常,则问题是 UAC。

    如果您没有围绕 UAC 限制进行编码,我强烈建议您阅读它。这将节省许多令人头疼的事情。

    http://www.codeproject.com/Articles/17968/Making-Your-Application-UAC-Aware

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多