如何从包装脚本中的vcproj(2008)文件中读取OutputDirectory属性?

时间:2010-08-19 15:42:32

标签: msbuild vcproj

我正在尝试编写一个构建vcproj的MSBuild包装器脚本(以及包含vcproj文件的解决方案),然后将特定vcproj文件的输出复制到一个特殊的“包”目录中,该目录又发布到一个文件共享。我需要为几个配置和平台(Debug,Release,Win32,x64)执行此操作。理想情况下,我希望能够从vcproj文件中读取特定Configuration / Platform的“OutputDirectory”,以便我可以复制其内容。使用csproj文件,这很简单,因为我可以将csproj文件“导入”到我的MSBuild包装器脚本中,然后读取“OutputPath”属性。不幸的是,我无法将vcproj(用于VS 2008)文件导入MSBuild脚本,因为它们不兼容MSBuild,因此该方法不起作用。

有没有人知道我可以从vcproj文件中读取“OutputDirectory”属性的值?请注意,我不想使用XPath并自行滚动,因为原始OutputDirectory属性看起来像“$(ProjectDir)\ bin \ $(ConfigurationName)\ $(PlatformName)”。我想要为我扩展所有这些宏,就像运行vcbuild时一样。

1 个答案:

答案 0 :(得分:1)

您可以在单独的属性文件中为每个配置提取OutputPath Debug.Properties, Release.Properties等,然后在vcproj和msbuild脚本文件中使用指令导入适当的一个。

<Import Project="Debug.Properties" />

或动态依赖于配置:

<Import Project="$(ConfigurationBasedPropertiesFile)" />

考虑当前配置

,设置属性$(ConfigurationBasedPropertiesFile)的值