【问题标题】:How can I prevent a .vdproj compile from updating the PackageCode on every compile?如何防止 .vdproj 编译在每次编译时更新 PackageCode?
【发布时间】:2011-06-01 04:02:47
【问题描述】:

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

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

这不会发生在我们的任何其他 .vdproj 文件中。使 .vdproj 与众不同的一件事是,除了包含解决方案中其他项目的主要输出之外,它还包含 50 多个不源自 Visual Studio 项目的其他 .iso、.kml、.jpg 文件。这些是否会导致 PackageCode 以某种方式发生变化?

【问题讨论】:

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


    【解决方案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

    【讨论】:

    • 感谢您的回复。很高兴听到其他人将此错误报告给 MS。作为一种解决方法,我们决定将文件签出以避免出现问题。
    • 这似乎仍然有问题,因为 IDE 每次运行都会编译和打包整个解决方案!
    【解决方案2】:

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

    hotfix for SP1 has been made available

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

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

    【讨论】:

    • 很遗憾,此修补程序没有解决我们的问题。我们的CM系统依然坚持check out,说明ProductCode还在更新中。
    • @kcrossBAE 您是否将安装项目的 BackwardCompatibleIDGeneration 设置为 True?构建系统将继续使用新行为,直到在 vbproj 中设置此属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 2010-12-11
    • 2012-01-11
    • 2011-02-18
    相关资源
    最近更新 更多