1

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

POSTSHARP 必须在构建之前恢复。

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

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

4

1 回答 1

2

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

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

建议的方法是创建一个简单的 MSBuild 项目文件,用于构建解决方案。您可以在其中包含所有必需的目标(例如 Build、Rebuild、Clean),这些目标只会在您的解决方案文件上调用 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>
于 2014-04-18T09:03:31.387 回答