【问题标题】:How to add a shortcut in a VS2010 setup project which does not reevaluate installed files如何在不重新评估已安装文件的 VS2010 安装项目中添加快捷方式
【发布时间】:2011-06-06 11:28:04
【问题描述】:

情况:我有一个 Windows 桌面应用程序,它连接到各种服务(一次一个)以执行各种调用。无论连接到哪个服务,我的应用程序都以相同的方式工作。它应该随时连接到哪个服务在 application.config 文件中定义。

为了在服务之间切换,我创建了几个 Windows .bat 文件,每个文件都将现有的 .config 文件替换为要使用的新文件(服务端点)。

为此,我创建了一个安装程序(一个 MSI,使用 Visual Studio 2010 中的“安装项目”模板)。此安装程序还会创建以下快捷方式:

  1. 应用程序本身
  2. 第一个 .bat 文件(将配置文件设置为“默认”服务端点)
  3. 第二个 .bat 文件。 (将配置文件替换为替代文件)

问题:每次我通过快捷方式运行其中任何一个(应用程序或 bat 文件)时,它们似乎都会在实际运行目标之前“重新评估”已安装的文件。只要我使用默认的 .config 文件,这没有问题,因为它就是这样安装的。但是,如果我已经运行了第二个 .bat 文件,并且正在尝试运行应用程序以便它连接到第二个服务,那么通过快捷方式启动应用程序会导致 .config 文件被还原,并且我最终连接到而是第一个服务。

我能够手动创建自己的快捷方式,既可以用于 .bat 文件,也可以用于应用程序本身,而且它们工作正常。但是,我希望这会自动发生,而不会弄乱对其他文件的任何更改。

任何想法将不胜感激! 提前致谢,
-Kjartan

【问题讨论】:

    标签: .net visual-studio-2010 deployment deployment-project


    【解决方案1】:

    您的部署项目具有所谓的“广告快捷方式”。有几种方法可以禁用它们,请参阅以下链接:

    http://social.msdn.microsoft.com/Forums/en/vssetup/thread/b57f1d84-9b0c-4c29-b140-0555f92ffed8

    【讨论】:

      【解决方案2】:

      谢谢乔治。这有点烦人,我很惊讶默认情况下似乎没有禁用此功能的好方法。我想我会分享我们最终采用的解决方案,即使它并不完美:我们将从命令提示符运行安装程序并使用以下参数,从而生成“正常”快捷方式。

      Setup.exe DISABLEADVTSHORTCUTS=1

      这意味着我们不能让我们的用户像往常一样通过简单的双击来安装应用程序。但是,这确实意味着我们(程序员)不必在每次进行新部署时都使用某些外部工具来编辑生成的安装程序;一个可接受的折衷方案,因为这是一个内部唯一的应用程序。

      再次感谢,
      -Kjartan

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多