【发布时间】:2018-04-05 16:23:04
【问题描述】:
我有一个用 Visual Studio 2013 编写的应用程序,我正在使用安装和部署项目来分发它。 Akash Kava 对此问题的回答中的所有要点均已设置:
Installing a new version of a deployment project over old version
即“DetectNewerInstall”设置为 true,“RemovePreviousVersion”设置为 true,等等。我还更改了 ProductCode 并允许 Visual Studio 创建新的 GUID,但 UpgradeCode 是相同的。我还增加了作为主要输出添加到安装项目的 C# 项目的版本号。
因此,当用户在已安装我的软件的机器上运行安装程序时,它会执行升级。发生这种情况时,我编写的所有内容都会升级。但是,有一些 NuGet 引用(SignalR、Owin、Netwonsoft 等)没有升级。即使在项目和清单中更新了包,安装程序也不会用新版本替换旧版本的 NuGet .dll。当我进行新安装并检查程序文件中的 .dll 时,我可以看到 NuGet .dll 是新版本,因此我知道正确的版本已正确地与安装项目捆绑在一起。如果它们已经存在,它们似乎不会被覆盖。这只发生在 NuGet 引用中;我编写的 .dll 和 .exe 正确升级。
有没有办法强制安装项目始终替换 NuGet .dll?
【问题讨论】:
标签: deployment windows-installer setup-project setup-deployment