2009-08-23 128 views
5

我看着MSDN,找不到它。
我发现一个XML Schema for the .vcproj file,这很好。
但我真正想要的是vcproj文件中每个元素的解释,一个引用。我在哪里可以找到.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。

任何人都可以建议吗?

EDIT:即使MS没有记录它,每个元件确实具有的含义。有谁知道列表或摘要?

+0

如果你阅读他们的团队博客,你会发现指向这些变化的指针,这将在Visual Studio 2010中变得更好。如果你在这里没有得到答案,我会在MS论坛上提问。 – Rick 2009-08-24 00:36:58

回答

2

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

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

+0

我可以相信MS没有记录格式。但它是XML,它是可读的。任何人都可以在任何地方完成分析和逆向工程? – Cheeso 2009-08-23 21:25:11

+0

XML节点名称几乎对应于项目的配置管理器/属性页面中的选项。解决这个问题不应该是火箭手术。 – 2009-08-23 21:39:36

2

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

他们切换到.vcxproj,它基于MSBuild。 (因此,也将完全记录)

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

至于GUID的,我相信他们每个人都必须是唯一的。我不认为他们之间有任何关系(两个元素不应该有相同的GUID)。

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

+0

我知道项目文件会改变,但..我没有VS2010的预算。 进一步查看之后,“源文件”(集合)有一个GUID,“头文件”有一个GUID,“资源文件”有一个GUID,并且这些GUID跨项目显示为相同的GUID。 – Cheeso 2009-08-23 21:59:29

0

我想我记得CMake的一个真正旧版本与UniqueIdentifier有关的问题,他们并不正确。如果我是正确的,问题就解决了,uniqueIdentifier应该是一个GUID。

对不起,我不能更多的帮助。我转移到cmake,现在我不必乱用vcproj文件,它们是为我生成的。

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

+0

QT还有一个生成器(qmake),用于从QT定义的.pro文件创建vc项目文件。 – metdos 2010-05-10 13:19:32

1

.vcproj中的所有元素都有文档记载,即VS自动化接口的DevStudio文档描述项目对象/属性,项目对象/属性直接映射到xml元素/属性。

+0

这值得一看,谢谢。 – Cheeso 2009-08-24 00:28:57

相关问题