Cra*_*aig 28 setup-project visual-studio-2010
我有一个包含8个项目的Visual Studio 2010解决方案.它还有一个我用来创建安装的安装项目.
它是在客户端PC上首次安装时工作正常.但是,然后我修改了我的项目,并构建了一个新的安装程序,并将其传递给客户端.发生这种情况时,客户端必须首先手动卸载上次安装,然后运行安装程序.
如果他们运行安装程序,没有卸载,它似乎不会覆盖现有文件(exe和dll).通常它只是被修改的exe.但是,它不会覆盖它.客户端计算机上的版本似乎保持不变.
有没有办法强制它覆盖?
请注意,当我修改我的主应用程序项目时,我会转到项目的属性,程序集信息,并增加程序集版本以及文件版本.
Sha*_*lde 34
如果您对安装有很好的控制,那么Visual Studio安装程序与商业产品甚至WiX相比,并不是最友好的用户.
当您拥有Visual Studio安装项目时,您将拥有升级过程中涉及的多个属性
1)升级代码 - 这是同类安装程序之间的链接,您不应该不必要地更改此代码
2)版本号 - 奇怪的是只有前3个数字(major.minor.build)用于比较(这是许多开发人员常犯的错误)
3)产品代码 - 一旦您更改版本号,VS将提示您更改此号码 - 执行此操作 - 如果您自动更改号码,请记住执行此操作
4)DetectNewerInstalledVersion - 设置为True
5)RemovePreviousVersions - 设置为True
就个人而言,我会考虑使用WiX进行如此小的安装,即如果你可以在Visual Studio中使用WiX版本
我的OpenCover安装程序如下所示
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" >
<Product Id="*" Name="OpenCover" Language="1033" Version="!(bind.FileVersion.OPENCOVER_FRAMEWORK_DLL)"
Manufacturer="OpenCover @ GitHub" UpgradeCode="2250c3f1-d9ba-44d8-b4db-25f91fe92dc6">
<Package InstallerVersion="200" Compressed="yes" />
<Upgrade Id="2250c3f1-d9ba-44d8-b4db-25f91fe92dc6">
<UpgradeVersion OnlyDetect="no" Property="PREVIOUSFOUND" Minimum="1.0.0.0" IncludeMinimum="yes"
Maximum="!(bind.FileVersion.OPENCOVER_FRAMEWORK_DLL)" IncludeMaximum="no" />
<UpgradeVersion OnlyDetect="yes" Property="NEWERFOUND" Minimum="!(bind.FileVersion.OPENCOVER_FRAMEWORK_DLL)"
IncludeMinimum="yes" />
</Upgrade>
<Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />
...
</Wix>
Run Code Online (Sandbox Code Playgroud)
我希望你能找到以上有用的东西
小智 6
尽管按照上述步骤操作,我也遇到了 .exe 未更新的问题。.exe 的产品版本似乎不会自动遵循安装属性中设置的版本号。对于运行新安装程序时要替换的 .exe,请按如下所示增加产品版本:
1) 转到项目属性 > 应用程序 > 程序集信息...
2)增加Assembly和File版本号
3) 再次构建安装程序,安装应覆盖旧的 .exe
希望这对某人有帮助。