【问题标题】:Setup Project not capturing updates安装项目未捕获更新
【发布时间】:2016-05-11 09:23:53
【问题描述】:

这是我第一次涉足设置项目。 我在 VS2013 中有解决方案。 解决方案中包含一个 C# Winform 项目和一个安装项目。

在第一次构建时,我可以使用 setup.exe 在我的笔记本电脑上安装我的应用程序;没有问题。 但是,当我对我的 Winforms 进行更改时,这些都不会反映在任何后续的重新安装中。 很简单,构建不会将 winform 更改传递给安装包。

解释: 我对表单进行更改,例如添加标签或按钮。 在我的设置项目中,我增加了版本号。 VS 自动生成一个新的产品代码。 全部建立。 从安装项目的调试文件夹中复制 setup.exe + msi。 粘贴到桌面。 执行 setup.exe 安装成功完成。 控制面板 > 程序,确认新版本号。 然而运行应用程序,我的表单没有任何变化!?

希望有人能够解释发生了什么,我错过了什么!? 非常感谢

【问题讨论】:

  • 问题是您使用的是哪种设置工具。由于 VS2013 不再包含旧的“安装项目”,它必须是 WiX 或 InstallShield 的轻量版。然后,问题是如何引用要安装的文件。也许您将一个版本复制到您的安装项目中,该版本每次都打包但不是最新的?请检查您的设置是否确实引用了可执行文件和依赖项的当前版本。
  • 所以安装项目是“Visual Studio Installer”。至于“引用可执行文件的当前版本”;我有点失落的地方。从启动项目中,我将目标机器的应用程序文件夹映射到“(活动)的主要输出”。显然,在第一次构建时,它正在寻找正确的文件来构建 setup.exe/msi。我“假设”它会在下一次构建时自动获取更改。
  • VS2013 没有开箱即用;但它仍然可以安装
  • 看,你每天都会学到新东西 :-)

标签: c# winforms setup-project


【解决方案1】:

如果您添加应用程序的主要输出,Visual Studio 安装程序项目将自动选择正确版本的应用程序。就是这样。

可能是 Visual Studio 确实打包了新版本的可执行文件,但它没有安装,因为您也忘记增加可执行文件的版本号(不仅仅是安装程序的版本号!)。 AFAIK,Windows Installer 仅在版本号不同时才会替换文件。

在安装新版本之前卸载旧版本会发生什么?然后你看到你的变化了吗?如果是这种情况,请尝试在下次更新之前增加版本号。

【讨论】:

  • 所以如果我卸载现有的,新的安装完美。所以安装包确实包含所有新版本。现在我更困惑当我安装在现有安装上时会发生什么,正如我之前所说,版本号增加了,并且 Windows 确认 newl 安装具有新的 Vsn 号。然而形式本身并没有改变!?
  • 你说In my setup project I increase the version number。这与增加可执行文件的版本号不同然后再试一次。控制面板显示什么并不重要。通过右键单击并选择“属性”来检查安装文件夹中可执行文件的版本号。我怀疑新版本的 exe 没有被复制,因为 Windows Installer 认为它是相同的版本
  • 啊啊啊啊..现在我们有了! Thorsten,你是一个非常有耐心的人,谢谢。
  • 总之,当我进行更新时,我必须更新我的 winform 项目的程序集/文件版本号以及我的安装项目中的版本号。对我来说似乎“不合逻辑”,必须在两个不同的地方维护 vsn,但我想我应该继续阅读更多关于这一切背后的“为什么”的信息。我敢肯定,现在我知道在哪里看,一切都会变得清晰。再次感谢您:)
  • 安装程序版本只是一个指示,如果之前安装了产品,则应该执行更新。程序集版本用于确定更新时的更改。
【解决方案2】:

在 AssemblyInfo.cs 中更改托管应用程序的所有版本号以及安装程序(安装项目)中的版本号和产品代码 .

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-09
    • 1970-01-01
    • 2010-09-10
    相关资源
    最近更新 更多