【问题标题】:Setup and Deployment Project won't upgrade NuGet DLLs安装和部署项目不会升级 NuGet DLL
【发布时间】: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


    【解决方案1】:

    但是,有一些 NuGet 参考(SignalR、Owin、Netwonsoft、 等)不升级。即使软件包已更新 项目和清单,安装程序不会替换旧版本 NuGet .dll 的

    NuGet 与部署无关,它应该仅在您构建项目或从控制台下载时下载包。

    安装程序/安装程序应根据 PrimaryOutput 自动检测依赖关系,但如果项目中未引用某些 dll 并且需要部署,则应手动将它们添加到安装程序项目中。

    在创建新安装程序时,请确保构建所有项目,以便安装程序项目可以将 dll 更新到新版本,如果您在应用程序项目中对其进行了更改,因此考虑到您已将安装程序配置为删除,因此无需执行任何操作来部署新版本的程序集安装新版本之前的版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-17
      • 2011-04-21
      • 1970-01-01
      相关资源
      最近更新 更多