【问题标题】:How to tell if a Visual Studio project file represents application, DLL or static library project?如何判断 Visual Studio 项目文件是代表应用程序、DLL 还是静态库项目?
【发布时间】:2013-01-16 12:18:07
【问题描述】:

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

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

【问题讨论】:

  • 在 2012 年是 <ConfigurationType>Application</ConfigurationType>,在 PropertyGroupLabel = "Configuration"。请注意,它可能会根据选择的项目配置而改变 - 因此您必须能够选择合适的配置。
  • 我很确定他们在 2010 年为 C++ 改变了很多东西
  • 要仔细检查您使用的任何解决方案,您可以通过右键单击项目来验证给定的项目类型,选择Properties->Configuration Properties->General->Configuration Type (在“项目默认值”下。

标签: visual-c++ visual-studio-2005 .net-2.0


【解决方案1】:

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

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

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

【讨论】:

  • 更新是由外部因素驱动的,所以在这种情况下,当我们有一天移到 2010 年时,可以将“更新这个小工具”添加到 long 测试列表中或超越:)
  • ConfigurationType="1" 用于应用程序或 exe 项目。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 1970-01-01
  • 2018-08-24
  • 2011-09-12
相关资源
最近更新 更多