如何防止.vdproj编译在每次编译时更新PackageCode?

时间:2011-03-01 15:31:33

标签: visual-studio-2010 windows-installer vdproj

我有一个用于Web应用程序的Visual Studio 2010解决方案,其中包含构成Web应用程序的所有项目,以及构建安装程序的.vdproj文件。所有文件都在配置管理下。

每当我编译此解决方案而不更改任何源代码时,Visual Studio将检出.vdproj文件并进行更改。 PackageCode至少会更改为a到不同的GUID。在其他时候,除了更新PackageCode之外,它还将更改.vdproj文件的“DeployProject”部分中的层次结构的顺序。

我们的其他任何.vdproj文件都不会发生这种情况。使.vdproj独一无二的一点是,除了包含解决方案中其他项目的主要输出外,它还包含50多个来自Visual Studio项目的附加.iso,.kml,.jpg文件。这些会导致PackageCode以某种方式改变吗?

2 个答案:

答案 0 :(得分:1)

每次“释放”msi时都应更改包代码,请参阅http://msdn.microsoft.com/en-us/library/Aa370568。由于VS不知道您是否将分发此msi,因此它可以安全地播放并修改包代码。

Visual Studio应该能够与源代码控制一起处理这个问题,你很幸运它会为你做这件事(在某种程度上,显然)。 Visual Studio 2010 SP1存在问题,请参阅http://connect.microsoft.com/VisualStudio/feedback/details/650587/vs-2010-sp1-changes-packagecode-in-vdproj-on-each-build-but-fails-as-source-controlled

答案 1 :(得分:1)

这是在安装VS2010 SP1并使用安装项目(.vbproj)构建解决方案后搜索无限对话框消息时第一个有用的谷歌搜索。这已由MS修复。我发布了一个更直接的修补程序下载链接。

A hotfix for SP1 has been made available

http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=35848

阅读修补程序链接,因为您仍然需要修改项目属性,因此默认构建操作不会尝试更改每个构建的产品代码(请参阅修补程序添加的项目属性:BackwardCompatibleIDGeneration