Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从MSBuild中的文件动态加载属性_Msbuild_Msbuild Task - Fatal编程技术网

如何从MSBuild中的文件动态加载属性

如何从MSBuild中的文件动态加载属性,msbuild,msbuild-task,Msbuild,Msbuild Task,我正在编写构建过程的脚本,我希望使用单个MSBuild脚本克隆repo,然后在该repo中的文件中包含属性以驱动构建。我发现包含另一个文件的属性的唯一方法是使用导入任务,该任务不能驻留在目标中,因此它导入的文件必须在最初调用MSBuild时存在。在目标运行之后,是否有任何方法来运行导入,或者完全可以从构建中间的文件中获取属性? ,我决定在调用它的BAT脚本中对我的脚本进行两个单独的调用。第一个调用我的克隆任务,该任务创建属性文件。第二个调用需要这些属性的任务。我确保任务具有要求文件存在的条件。我

我正在编写构建过程的脚本,我希望使用单个MSBuild脚本克隆repo,然后在该repo中的文件中包含属性以驱动构建。我发现包含另一个文件的属性的唯一方法是使用
导入
任务,该任务不能驻留在
目标
中,因此它导入的文件必须在最初调用MSBuild时存在。在目标运行之后,是否有任何方法来运行<代码>导入<代码>,或者完全可以从构建中间的文件中获取属性?

,我决定在调用它的BAT脚本中对我的脚本进行两个单独的调用。第一个调用我的克隆任务,该任务创建属性文件。第二个调用需要这些属性的任务。我确保
任务具有要求文件存在的条件。我仍然愿意采用更简洁的方法,但这是可行的。

您必须调用此函数,以使用特定参数(例如.props文件的路径)为同一项目运行另一个msbuild进程


但我确信“适合工作的合适工具”。也许你应该看看假货、诗篇、蛋糕之类的解决方案

<Target Name="Default">
    <MSBuild 
         Projects="$(MSBuildThisFileFullPath)"
         Properties="ParamsPath='./ParamsPath/name.props"
         Targets="DoSomethingTarget"/>
</Target>
<Import Project=$(ParamsPath) Condition="Exists('$(ParamsPath)')"/>
<Target Name="DoSomethingTarget">
    <DoSomeThingTasks/>
</Target>