在桌面上部署.NET(C#)exe应用程序

zah*_*pov 6 .net c# deployment visual-studio-express

我使用MSVC 2010 Express在C#中开发应用程序,使用Forms/WPF /等.

应用程序包含一些私有程序集(可能是DLL)和.exe文件.它使用.NET 4功能.

我如何将此应用程序部署到其他计算机?当然,如果他们有.NET 4我只能用.dll发送.exe的zip,它可以工作.但如果他们根本没有.NET(在Win XP机器上)?或者他们可能有较低版本的.NET?我应该指出他们从互联网安装.NET还是用我的应用程序包装它或者什么?

谢谢

Rem*_*emy 13

微软有点击一次部署.它可以自动完成大部分任务,包括确保您拥有正确的.Net版本,并在有新版本的应用程序时更新应用程序.

  • 您还应该说ClickOnce将根据需要安装.NET框架和其他依赖项(例如SQL Server Express). (3认同)

Ale*_*tin 11

您应该创建一个安装程序包.如果您使用的是Visual Studio的快速版本,您可以使用一些免费工具,如WiX或Inno Setup.WiX可能是一个难以开始的选择,但具有很大的灵活性.有一些教程和示例项目需要修改以使其适应您的需求. http://www.tramontana.co.hu/wix/

此工具创建安装程序,可以检查用户计算机上是否安装了某个版本的.NET框架,以及其他条件.您还可以在程序包中包含.NET可再发行组件,或指向用户下载并安装它.


小智 5

我们尝试尽可能简化部署,我们所做的一件事就是确保我们的应用程序只是一个可执行文件,不需要支持文件.

我们采取了几个步骤:

  1. 确保所有相关资源文件尽可能存储在嵌入式资源中,而不是存储在磁盘上
  2. 使用ILmerge将所有程序集链接到单个可执行文件中
  3. 可选 - 对程序集进行模糊处理
  4. 可选 - 如果某些部分无法进行ILMerged或混淆,迫使我们拥有多个文件,我们使用Xenocode的PostBuild将所有文件链接到一个可执行文件中.Xenocode提供了一个虚拟文件系统来执行此操作.这也允许框架嵌入,因此您的应用程序将在干净的Windows安装上运行 - 不需要安装依赖项:-)
  5. 使用WiX将单个可执行文件包装到msi安装程序中
  6. 部署后将单个可执行文件包装为单击.为此,我们还使用一个启动主应用程序的小型存根启动程序可执行文件,允许我们重用相同的主应用程序可执行文件
  7. 创建仅包含单个文件可执行文件的zip文件以进行手动安装.

我们在下载网站上有以下内容:

  1. MSI安装程序 - 我们希望人们使用这个
  2. 带有Xenocoded(单个文件)可执行文件的zip文件
  3. 包含.NET Framework的Xenocoded(单个文件)可执行文件的zip文件