NuGet包恢复:Visual Studio Online& POSTSHARP

时间:2014-04-17 05:12:50

标签: postsharp azure-devops nuget-package-restore

我安装了POSTSHARP作为nuget包,我希望Visual Studio Online能够自动恢复它。

在构建之前必须恢复POSTSHARP。

我试图遵循这一点但没有成功:link

如何在构建之前在Visual Studio Online中运行脚本/命令?

1 个答案:

答案 0 :(得分:2)

nuget.org上有关于如何使用TFS设置包还原的说明,包括Visual Studio Online:http://docs.nuget.org/docs/reference/package-restore-with-team-build

它提到VSO的默认构建过程模板已经实现了NuGet Package Restore工作流程。因此,据推测,只有在自定义模板时才需要进行其他设置。

建议的方法是创建一个简单的MSBuild项目文件,用于构建解决方案。您可以在那里包含所有必需的目标(例如,构建,重建,清理),只需在解决方案文件上调用MSBuild并指定相应的目标。

另外为包恢复创建一个目标 - 它将调用NuGet.exe restore MySolution.sln命令。共同的构建目标将取决于此。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0"
         DefaultTargets="Build" 
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>
    <OutDir>$(MSBuildThisFileDirectory)bin</OutDir>
    <Configuration>Release</Configuration>
    <ProjectProperties>
        OutDir=$(OutDir);
        Configuration=$(Configuration);
    </ProjectProperties>
  </PropertyGroup>

  <ItemGroup>
    <Solution Include="$(MSBuildThisFileDirectory)src\*.sln" />
  </ItemGroup>

  <Target Name="RestorePackages">
    <Exec Command="&quot;$(MSBuildThisFileDirectory)tools\NuGet\NuGet.exe&quot; restore &quot;%(Solution.Identity)&quot;" />
  </Target>

  <Target Name="Build" DependsOnTargets="RestorePackages">
    <MSBuild Targets="Build"
             Projects="@(Solution)"
             Properties="$(ProjectProperties)" />
  </Target>

  <!-- other targets... -->

</Project>