我正在编写一个工具,检查我的源代码树,查找.vcproj和.csproj项目(VS2005)。我希望它知道每个项目是应用程序,DLL还是静态lib项目。
对于C#,我认为这个问题有一个答案(How do you tell the Visual Studio project type from an existing Visual Studio project)但我在C ++项目中找不到明显的并行。如果可能的话,我更喜欢在文本中用作简单搜索词的内容。
答案 0 :(得分:5)
您需要解析.vcproj文件中的“ConfigurationType”属性。 <VisualStudioProject><Configurations><Configuration>
元素的属性。 DLL项目为“2”,静态库项目为“4”。请注意,不同的配置可以为此属性设置不同的值,尽管这会非常不寻常。
通常,您可以通过制作.vcproj文件的副本来对这些内容进行反向工程,在Project + Property页面中进行更改,使用File + SaveAll,然后比较两个.vcproj文件以查看更改的内容。
请注意为这样一个旧版本的Visual Studio投入大量精力。八年是软件工程的一个很长的一段时间,尤其是在C ++ 11标准发布之后。在VS2010上,C ++项目文件格式发生了巨大变化,现在是一个.vcxproj文件,它通过MSBuild支持构建,加入了VS中的其他语言。有一天当你升级你的VS版本时,你一定要重做所有这些。现在最好这样做,因为以后当你依赖你的工具时,确实不会那么容易。