Msbuild 如何从包装器脚本中的vcproj(2008)文件中读取OutputDirectory属性?
我正在尝试编写一个MSBuild包装器脚本,该脚本构建一个vcproj(好的,是一个包含vcproj文件的解决方案),然后将特定vcproj文件的输出复制到一个特殊的“package”目录中,然后发布到文件共享中。我需要为几种配置和平台(调试、发布、Win32、x64)执行此操作。理想情况下,我希望能够从特定配置/平台的vcproj文件中读取“OutputDirectory”,以便复制其内容。对于csproj文件,这很简单,因为我可以将csproj文件“导入”到我的MSBuild包装脚本中,然后读取“OutputPath”属性。不幸的是,我无法将vcproj(用于VS 2008)文件导入到MSBuild脚本中,因为它们与MSBuild不兼容,所以这种方法不起作用Msbuild 如何从包装器脚本中的vcproj(2008)文件中读取OutputDirectory属性?,msbuild,vcproj,Msbuild,Vcproj,我正在尝试编写一个MSBuild包装器脚本,该脚本构建一个vcproj(好的,是一个包含vcproj文件的解决方案),然后将特定vcproj文件的输出复制到一个特殊的“package”目录中,然后发布到文件共享中。我需要为几种配置和平台(调试、发布、Win32、x64)执行此操作。理想情况下,我希望能够从特定配置/平台的vcproj文件中读取“OutputDirectory”,以便复制其内容。对于csproj文件,这很简单,因为我可以将csproj文件“导入”到我的MSBuild包装脚本中,然后
有人知道我可以从vcproj文件中读取“OutputDirectory”属性值的方法吗?请注意,我不想自己使用XPath并使用它,因为原始OutputDirectory属性类似于“$(ProjectDir)\bin\$(ConfigurationName)\$(PlatformName)”。我希望为我扩展所有这些宏,就像运行vcbuild时一样。您可以在单独的属性文件中为每个配置提取
OutputPath
,如
Debug.Properties、Release.Properties等,然后在vcproj和msbuild脚本文件中使用指令导入相应的属性
<Import Project="Debug.Properties" />
或动态地取决于配置:
<Import Project="$(ConfigurationBasedPropertiesFile)" />
考虑到当前配置,设置属性值$(ConfigurationBasedProperties文件)