6

对于我的两个 VS 2005 C++ 项目,VS 希望在我构建项目时写入 .sln 文件。我有许多其他 VS 2005 C++ 项目,但情况并非如此。这是一个问题,因为我们将 ClearCase 源代码控制与我们的 VS 2005 安装集成在一起,当我们尝试通过批处理文件运行通宵构建时,构建暂停,因为显示了 ClearCase 签出对话框。

查看 .sln 文件中 VS 的变化,它是项目行上的第二个 GUID。

建造前:

Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InterCommClientB", "InterCommClientB.vcproj", "{A2AF232A-7F27-4340-81D5-8ABFD10994D2}"

建成后:

Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InterCommClientB", "InterCommClientB.vcproj", "{67BE85B7-3234-484E-88FB-4F0E42096583}"

感激地收到任何帮助。我是 VS 2005 的新手,因为我们最近才从 VC++ 6.0 迁移,所以如果我遗漏了一些明显的东西,我深表歉意。

我们正在运行安装了 SP1 的 VS 2005 专业版。

问候,

格雷格。

4

3 回答 3

4

我有类似的问题。从旧版本的 VS(如 6 或 2003)转换项目时,VS 2010 似乎没有将项目 GUID 添加到 .vcxproj 文件中。因此,当您打开包含此类项目的解决方案时,VS 将为此类项目重新创建 GUID,并将更改 .sln 文件但不会更改 .vcxproj 文件。因此,再次打开此类解决方案时,情况将相同,并且 .sln 文件可能会再次更改。

看到这个:http ://connect.microsoft.com/VisualStudio/feedback/details/586258/missing-projectguid-in-vcxproj-files

于 2011-08-11T10:11:51.297 回答
1

我在这里猜测,但似乎对 InterCommClientB 项目(项目,而不是项目中的文件)进行了一些更改。发生这种情况时,sln 会更新,在这种情况下只有项目 GUID。

解决此问题的最佳猜测是手动构建解决方案,然后签入更改。这样 sln 文件不会在构建时更改。

我的第二个最佳猜测是您已经在计算机上进行了此更改并且工作正常,但是您没有在进行夜间构建的 pc 上获得最新版本。

于 2009-01-26T11:11:22.263 回答
0

这可能完全不存在 - 但有时 Visual Studio 在修改解决方案文件时以及在 Visual Studio 中打开解决方案时无法签入解决方案文件。尝试关闭 Visual Studio,然后才提交解决方案文件。

如果不是这样,则可能有其他机构导致解决方案文件需要更改其使用的 GUID。在一个例子中,我使用的是 National Instruments 的 .NET 工具,他们有一个许可方案,每当我进行重建时,它们都会触发这种操作(修改无关文件,因为不是很好的理由)。

请仔细查看构建的输出(在日志或输出窗口中) - 您可能会在那里找到更多线索!

于 2009-02-01T21:08:16.480 回答