5

我正在编写一个工具来检查我的源代码树以查找 .vcproj 和 .csproj 项目(VS2005)。我想让它知道每个项目是应用程序、DLL 还是静态库项目。

对于 C#,我认为这个问题有答案(How do you tell the Visual Studio project type from an existing Visual Studio project),但我在 C++ 项目中找不到明显的相似之处。如果可能的话,我更喜欢可以在文本中用作简单搜索词的内容。

4

1 回答 1

5

您需要解析 .vcproj 文件中的“ConfigurationType”属性。<VisualStudioProject><Configurations><Configuration>元素的一个属性。DLL 项目为“2”,静态库项目为“4”。请注意,不同的配置可能对此属性有不同的值,尽管这将是非常不寻常的。

通常,您通过制作 .vcproj 文件的副本对这些内容进行逆向工程,在 Project + Property 页面中进行更改,使用 File + SaveAll 然后比较两个 .vcproj 文件以查看更改的内容。

请注意在 Visual Studio 的旧版本中投入大量精力。八年对于软件工程来说是一段很长的时间,尤其是在 C++11 标准发布之后。C++ 项目文件格式在 VS2010 发生了巨大变化,现在是一个 .vcxproj 文件,它通过支持通过 MSBuild 构建来加入 VS 中的其他语言。当你有一天升级你的 VS 版本时,你一定要重做所有这些。最好现在就这样做,因为以后当您开始依赖您的工具时,这样做肯定不会更容易。

于 2013-01-16T15:53:32.517 回答