MSBUILD正在注入属性,正在解析源根文件夹

MSBUILD正在注入属性,正在解析源根文件夹,msbuild,msbuild-task,Msbuild,Msbuild Task,我正在处理大量的*.csproj,它们的compile\clean目标被psake目标所取代。到目前为止,它一直通过解析到c:\fixedlocation\scripts文件夹中的脚本来工作。我正朝着在源代码树中包含所有脚本\引用的方向发展。并非所有项目都从源树中的同一级别开始。因此,获取脚本文件夹的相对路径将不起作用。他们都不一样 我考虑过实现一个简单的MSBUILD任务来发出属性,但是,项目如何定位包含MSBUILD任务的DLL。同样的问题 我可以用一个属性修补项目的内部,但如果项目被移动,

我正在处理大量的*.csproj,它们的compile\clean目标被psake目标所取代。到目前为止,它一直通过解析到c:\fixedlocation\scripts文件夹中的脚本来工作。我正朝着在源代码树中包含所有脚本\引用的方向发展。并非所有项目都从源树中的同一级别开始。因此,获取脚本文件夹的相对路径将不起作用。他们都不一样

我考虑过实现一个简单的MSBUILD任务来发出属性,但是,项目如何定位包含MSBUILD任务的DLL。同样的问题

我可以用一个属性修补项目的内部,但如果项目被移动,则必须维护该属性


脚本文件夹的位置是在树上的递归(从MSBuildProjectDirectory),直到找到源树根,然后从那里向下到sourceRoot\bin。

MSBuild有一个所谓的“属性函数”
GetDirectoryNameOfFileAbove
,它执行递归搜索,直到找到具有给定名称的文件为止。这就是你要找的吗?我不确定源目录树的根是什么,因为它需要一个文件,但是你可以使用一些总是在根目录下的东西,比如解决方案文件的名称。这可能就行了。我明天上班的时候试试看。我通常是在寻找一个从根开始的目录。我可以把文件放在那里。回答你的评论。