【发布时间】:2016-08-26 10:37:54
【问题描述】:
我想在 vNext Build 定义中使用当前 csproj 的宏,例如 ${TargetPath} $(TargetName),作为 MSBuild 参数的 vs build 任务属性的一部分,进行一些复制等。
但我发现它不起作用,在构建日志中,宏没有更改为绝对路径。
有没有办法像在 csproj post-build 事件中一样使用这些宏?我在 msdn 上没有找到关于这个的描述,我不能在每个 csproj 中使用它,因为我们有超过一千个项目文件,prj文件一个一个编辑不好:(
非常感谢您的帮助。
更新
我希望每个项目在构建时只输出自己的程序集,没有任何引用的程序集。但是我无法更改项目文件以将引用属性“复制本地”修改为 false。
【问题讨论】:
-
带有 ${TargetPath} $(TargetName) 的宏的用途是什么?是不是和msdn链接一样:msdn.microsoft.com/en-us/library/c02as0cs.aspx?如果是这样,为什么要在 MSBuild 参数中使用它而不是在项目的属性页中?
-
@Patrick-MSFT 感谢您的帮助。是的,我提到的宏与您的链接相同。我在构建任务配置而不是项目属性页面中使用它,因为我们的系统中有一些参考规则。我们将每个模块分为接口和实现,我们将它们设置为差异项目中,模块之间只能引用接口组件。构建时,我们将它们输出到 diff dir,如果引用其他实现,构建将失败。我使用 ${TargetPath} 将当前 csproj 的 dll 复制到正确的目录中,但没有包含引用的其他 dll。
标签: tfs msbuild macros tfs-2015