我正在從bat腳本中調用一個不是csproj
的MSBuild腳本。我希望該腳本能夠使用MSBuild Community Tasks,我不希望將其安裝在每臺機器上,也不希望將其二進制文件包含在我的回購中。如何在獨立的MSBuild腳本中使用NuGet目標,而無需單獨調用恢復目標
通過將這些節點添加到腳本中並調用restore
目標,程序包恢復。
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ItemGroup>
<PackageReference Include="MSBuildTasks">
<Version>1.*</Version>
</PackageReference>
</ItemGroup>
要使用它包含的任務,我只需要使用它們。我不需要導入任何其他targets
文件:
<Target Name="MyTarget" DependsOnTargets="Restore">
<AssemblyInfo CodeLanguage="CS"
OutputFile="$(VersionInfoFile)"
AssemblyVersion="1.2.3.5"
/>
</Target>
但是,我第一次運行我的腳本,包恢復,但隨後的腳本,因爲它無法找到AssemblyInfo
任務失敗。第二次,它成功了。有沒有辦法讓這個工作不需要兩次調用MSBuild腳本(第一次,特別是運行Restore
目標)?