5

我看了MSDN,没找到。
为 .vcproj 文件找到了一个 XML Schema,这很好。
但我真正想要的是对 vcproj 文件中每个元素的解释,一个参考。

摆在我面前的直接问题是,元素 VisualStudioProject/Files/Filter 中的 UniqueIdentifier 属性有什么意义?源文件的 UUID 跨项目是否相同?还是全球独一无二?

<VisualStudioProject>
  ...
  <Files>
      <Filter
        Name="Source Files"
        Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
        UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
        >
        <File ... />
          ... 
      </Filter>
      <Filter
        Name="Header Files"
        Filter="h;hpp;hxx;hm;inl;inc;xsd"
        UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
        >
        <File ... />
          ... 
      </Filter>
      <Filter
        Name="Resource Files"
        Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
        UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
        >
        <File ... />
          ... 
      </Filter>
  </Files>
  <Globals>
  </Globals>
</VisualStudioProject>

但在我回答了一个问题后,我相信我还会有 10000 个。所以我想要一个参考,它允许我直接编辑 .vcproj。

任何人都可以建议吗?

编辑:即使 MS 没有记录它,每个元素都有意义。有人知道列表或摘要吗?

4

4 回答 4

2

我怀疑微软不打算将这种格式记录在案。Microsoft 过去曾表示,记录的功能和格式在某些情况下需要更多的工作量。

如果格式没有记录,那是因为微软希望这样。任何文档都将通过分析和逆向工程。

于 2009-08-23T19:22:05.857 回答
2

我不知道你需要这个做什么,所以这可能相关也可能不相关,但 Visual Studio 2010 将放弃 .vcproj 格式。;)

他们正在切换到基于 MSBuild 的 .vcxproj。(因此,也将被完整记录)

因此,至少从长远来看,目标可能更容易。

至于 GUID,我相信它们中的每一个都必须是独一无二的。我认为它们之间没有任何关系(两个元素不应该有相同的 GUID)。

微软只是喜欢给所有东西自己的 GUID。你永远不知道什么时候需要它!;)

于 2009-08-23T21:33:56.137 回答
1

.vcproj 中的所有元素都被记录在案,例如,VS 自动化接口的 DevStudio 文档描述了项目对象/属性,并且项目对象/属性直接映射到 xml 元素/属性。

于 2009-08-23T23:44:33.610 回答
0

我想我记得一个非常旧版本的CMake与 相关的问题UniqueIdentifier,即它们不是完全独特的。如果我是正确的,则问题已解决,并且uniqueIdentifier应该是 GUID。

抱歉,我无法提供更多帮助。我搬到了 cmake,现在我不必弄乱 vcproj 文件,它们是为我生成的。

您可能可以在CMake站点上找到更多信息,因为他们有一个 vc 项目文件的生成器,他们必须已经完成了所有的逆向工程。

于 2009-08-23T21:37:23.990 回答