我正在尝试编写一个构建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时一样。
答案 0 :(得分:1)
您可以在单独的属性文件中为每个配置提取OutputPath
Debug.Properties, Release.Properties
等,然后在vcproj和msbuild脚本文件中使用指令导入适当的一个。
<Import Project="Debug.Properties" />
或动态依赖于配置:
<Import Project="$(ConfigurationBasedPropertiesFile)" />
考虑当前配置
,设置属性$(ConfigurationBasedPropertiesFile)
的值