我正在开发一个开源 C# 应用程序。一段时间以来,我一直在使用自己编写的基本 .NET 安装程序。但是,随着最近的更改,这对我来说不再实用,因为我必须向安装程序添加大量文件 - 而且它们可能会随着每个版本而改变。ZIP 文件也不实用。
我在网上做了一些检查,我看到了很多 MSI、ClickOnce、自解压 ZIP 和(imo 最有前途的)NSIS 系统。它们似乎都不完全符合我的需求,所以我正在寻找关于使用哪个系统的建议。
我的程序的实际安装非常简单。基本上,我只需要将 bin\Release 目录(和所有子目录)复制到客户端的计算机上。通过将每个文件嵌入到我的 .NET 安装程序中,并维护一个文件表,我一直在实现这一点。
不幸的是,我刚刚本地化了我的应用程序。我现在有 30 多个 .resx 文件(它们被编译为 dll 并由 Visual Studio 放置到 MORE 子目录中),显然,将 30 多个文件夹和 DLL 添加到我的安装程序是不切实际的。因此,我为什么在这个搜索中。
还有一些其他要求:
- 安装程序应在预定义目录中搜索指定的 .exe。(我的应用程序被设计为替代品)如果找不到 .exe,它应该提示它的位置
- 安装程序应验证“OldApp.exe.bak”是否存在。如果不是,它应该将“OldApp.exe”重命名为“OldApp.exe.bak”
- 安装程序应该更新文件。即,如果“Culture.de.dll”没有改变,安装程序将不理会它。
- 安装程序应该适用于所有 .NET IDE(VS、SharpDevelop、Mono 等)的所有 Windows 版本,但不需要在其他平台上运行。
- 当我构建解决方案时,安装程序应该会自动重新生成。换句话说,它应该可以通过“构建后”部分运行。
- 安装程序生成必须能够添加到源代码存储库中。这样任何下载我的应用程序源代码的人都可以编译安装程序。
抱歉,帖子太长了,我认为多发比少发更好。