2

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

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

4

1 回答 1

1

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

<Import Project="Debug.Properties" />

或动态取决于配置:

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

$(ConfigurationBasedPropertiesFile)考虑当前配置的属性设置值

于 2011-08-09T12:53:37.817 回答