我正在从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
目标)?