为什么即使是最新的版本,Visual Studio 2008也总是要构建安装项目?

4
对于普通的源代码项目,当您要求 Visual Studio 构建项目时,只有在其被认为过时时才会构建它。(/build 命令行开关的文档证实了这一点。)
然而,对于安装程序项目,似乎无论依赖项是否最新,Visual Studio 都会构建它们。即使是一个简单的场景,其中安装程序项目仅包含另一个项目的主要输出。
为什么安装程序项目会表现出这种方式?有没有办法改变这种行为?

1
不使用安装程序的又一个原因。值得一提的是,微软已经将其淘汰,并且在VS2012中不再支持。除非您需要更多功能,否则建议使用InstallShield Limited Edition进行替代。WiX是另一个选择。 - Christopher Painter
@ChristopherPainter,这是一个关于VS安装项目保质期的好提醒。您知道InstallShield LE项目是否有不同的行为吗? - Holistic Developer
老实说,我不知道。通常我会将安装程序放在一个单独的解决方案中。如果它在解决方案中,那么通常可以推断出,由于安装程序将所有内容打包在一起,如果有任何更改,那么可能需要重新构建安装程序。大多数开发人员不想处理这个问题,所以我选择将其放入一个单独的解决方案中。 - Christopher Painter
我已经下载了适用于VS 2010的InstallShield LE,当一切都是最新的时,它确实会跳过构建设置。 - Holistic Developer
1个回答

2

安装程序项目实际上是一个打包工具,它会检查所有的项目并在必要时进行构建,但每次运行它时都会创建一个新的软件包。据我所知,没有办法改变这种行为。

通常我会将我的“生成-配置管理器”设置为不构建安装程序项目。然后当我想要创建/更新安装程序时再对它们进行构建。


感谢确认。在我们的特定情况下,我们有一个NAnt脚本用于我们的日常构建,构建安装程序项目。我们还在我们的开发机器上使用NAnt脚本来运行完整的系统构建,并且如果您需要在检入之前多次在您的机器上运行它,使它们完全“增量”可能会很好。我更改了我们的NAnt脚本,以查看.MSI是否与其中包含的主可执行文件相比是最新的。这使我们避免了在运行脚本多次时重新构建.MSI。 - Holistic Developer
1
我认为您可以创建一个解决方案配置,以排除那些情况下的安装程序。例如,在发布版本中构建安装程序,但不在调试版本中构建。 - Christopher Painter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接