将现有项目添加到解决方案编辑项目文件

时间:2011-01-26 16:46:08

标签: c++ visual-studio

我有一个C ++解决方案(solution.sln),我想要包含一个现有的库(library.vcproj),所以我在Visual Studio中打开solution.sln并包含library.vcproj为它提供文件。然后我设置项目依赖项和一些包含路径以使其编译。一切正常。

当我要将这些更改提交到存储库(svn)时,我注意到library.vcproj已更改。我检查差异,它只是已更改的项目的GUID。我看一下solution.sln差异,并发现,正如我所料,新项目GUID正用于识别library.vcproj

我已经完成了 gazillion 次,我之前从未见过这种行为。

作为避免library.vcproj文件修改的解决方法,我将更改还原到它并手动编辑solution.sln替换项目的前一个新GUID。

在Visual Studio中打开solution.sln时,一切正常,但是创建了一个新的GUID,替换了solution.slnlibrary.vcproj中的libray项目。

library.vcproj包含在其他几个解决方案中,因此提交更改会影响其他几个文件。

可能导致这种行为的原因是什么? GUID或项目引用是否存储在其他地方?

我正在使用 Visual Studio 2005

1 个答案:

答案 0 :(得分:4)

我找到了这种行为的原因。这不是一个VS错误,它实际上是一个强大的行为!

另一个库包含在solution.sln中且具有相同的GUID,因此VS更新了传入的library.vcproj的GUID。

深入研究svn日志我发现有人从anther库中复制了library.vcproj文件并只编辑了库名。两个库都将大部分构建配置数据和其他内容共享到.vcproj文件中,但忘记更改GUID值。

我很惭愧但是......有人竟然是我。

感谢您的意见和时间来考虑这个问题。