C#应用程序的安装程序
我正在开发一个开源的C#应用程序。有一段时间,我一直在使用自己编写的基本.NET安装程序。然而,随着最近的一次更改,这对我来说不再实用,因为我必须向安装程序中添加大量文件,而且它们可能会随着每个版本的变化而变化。ZIP文件也不实用 我在网上做了一些检查,我看到很多MSI、ClickOnce、自解压ZIP和(我认为最有希望的)NSIS系统。它们似乎都不完全符合我的需要,所以我正在寻找使用哪种系统的建议 我的程序的实际安装非常简单。基本上,我只需要将bin\Release目录(和所有子目录)复制到客户端的计算机上。通过将每个文件嵌入到.NET安装程序中,并维护一个文件表,其中列出了要安装的内容,我已经实现了这一点 不幸的是,我刚刚本地化了我的应用程序。我现在有30多个.resx文件(它们被编译成DLL并被Visual Studio放入更多的子目录),显然,向我的安装程序添加30多个文件夹和DLL是不切实际的。这就是为什么我要进行这次搜索 还有一些其他要求:C#应用程序的安装程序,c#,.net,installation,C#,.net,Installation,我正在开发一个开源的C#应用程序。有一段时间,我一直在使用自己编写的基本.NET安装程序。然而,随着最近的一次更改,这对我来说不再实用,因为我必须向安装程序中添加大量文件,而且它们可能会随着每个版本的变化而变化。ZIP文件也不实用 我在网上做了一些检查,我看到很多MSI、ClickOnce、自解压ZIP和(我认为最有希望的)NSIS系统。它们似乎都不完全符合我的需要,所以我正在寻找使用哪种系统的建议 我的程序的实际安装非常简单。基本上,我只需要将bin\Release目录(和所有子目录)复制到客
- 安装程序应在预定义目录中搜索指定的.exe。(我的应用程序被设计成一个插入式替代程序)如果找不到.exe,它应该提示输入它的位置
- 安装程序应验证“OldApp.exe.bak”是否存在。如果没有,则应将“OldApp.exe”重命名为“OldApp.exe.bak”
- 安装程序应该更新文件。也就是说,如果“Culture.de.dll”没有更改,安装程序将不处理它
- 安装程序应可与所有.NET IDE的所有Windows版本(VS、SharpDevelop、Mono等)一起使用,但不需要在其他平台上使用
- 当我构建解决方案时,安装程序应该自动重新生成。换句话说,它应该可以通过“后期构建”部分运行
- 安装程序生成必须能够添加到源代码repo。这样,任何下载我的应用程序源代码的人都可以编译安装程序
您可以将这些定义文件(XML)放在源代码管理中,并且可以配置生成以执行安装。但是,任何获得您的源代码的人都需要安装WIX实用程序。是一个不错的选择。据介绍,微软使用它为自己的一些产品生产安装程序。我推荐。它结合了WiX和C#,实现了相当灵活的实现。我发现它没有什么做不到的。我推荐NSIS。根据我的经验,NSIS文档或社区示例中已经介绍了我所需的任何安装程序功能。我不能评论NSIS与Visual Studio的集成,因为我使用的是与Jenkins构建服务器集成的NSIS。似乎有一个名为的免费VisualStudio加载项,它提供了NSIS与VisualStudio的集成。我个人没有使用过它,但它目前似乎正在积极开发中,因此可能值得一看。您的开源应用程序的名称/url是什么?我选择了这个应用程序,因为它结合了WIX和其他功能。非常有用:)