我正在尝试从目录导入一些道具和目标文件,该目录是用户指定的位置。为了确定这个目录,我有一些自定义逻辑,我试图在其中一个道具中找到一种方法来执行它。我无法使用标准的MSBUILD属性函数来实现此目的。
我的最终目标是拥有一个允许用户指定此目录的小UI,并且该目录的范围必须绑定到项目,即,可能有两个不同的项目指向解决方案中的两个不同目录
答案 0 :(得分:1)
在摆弄完所有要求后再次调用构建脚本怎么样?每次调用将MSBuild
作为$(MSBuildProjectFile)
值的Projects
任务,都会再次调用您的构建文件,并且该调用将有一个新的环境副本。
<Project DefaultTargets="EntryPoint" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0">
<Target Name="SetProperties">
<PropertyGroup>
<PropA>Something</PropA>
</PropertyGroup>
</Target>
<Target Name="EntryPoint">
<MSBuild
Projects="$(MSBuildProjectFile)"
Properties="Configuration=$(Configuration);OutputPath=$(OutputPath);"
Targets="SetProperties;EntryPoint"
Condition="$(PropA) == ''"/>
<Message
Text="Everything is set!"
Condition="$(PropA) != ''"/>
</Target>
</Project>
可以轻松扩展此设置以执行某些Exec
任务逻辑,并将该输出转发到对入口点的新调用。