0
有沒有辦法在msbuild中使用Import指令,使得Project屬性的值是一個變量,並且該變量是在目標中定義的?是否有可能導入一個msbuild目標,其位置是在目標中定義的屬性?
就目前而言,在我看來,Import指令是在任何目標之前評估的。
例如:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishDir>none</PublishDir>
<AutomatedTestsTarget>none</AutomatedTestsTarget>
</PropertyGroup>
<Target Name="GetPublishDir">
...
</Target>
<Target Name="BeforeCompile" DependsOnTargets="GetPublishDir">
<PropertyGroup>
<AutomatedTestsTarget>$(PublishDir)\automated_tests.build</AutomatedTestsTarget>
</PropertyGroup>
</Target>
<Import Project="$(AutomatedTestsTarget)"/>
</Project>
Frankensolution
快速的解決方案(如根據註釋),兩個MSBuild的電話,首先寫入一個文件。其次做進口這種方式(通過讀取文件的路徑):在「評估階段」
<PropertyGroup>
<AppRootDir>$([System.IO.File]::ReadAllText($(MSBuildProjectDirectory)\directory.txt))\..\automation\</AppRootDir>
</PropertyGroup>
對於它的價值,我解決了這個有兩個MSBuild的電話;首先將包含路徑的文件寫入磁盤。第二次調用讀取文件並以這種方式檢索發佈目錄。 – mlangsworth 2013-05-08 05:00:44