1

POSTSHARP を nuget パッケージとしてインストールしましたが、Visual Studio Online で自動的に復元したいと考えています。

ただし、ビルドする前に POSTSHARP を復元する必要があります。

私は成功せずにこれをフォローしようとしています:リンク

ビルド前に Visual Studio Online でスクリプト/コマンドを実行するにはどうすればよいですか?

4

1 に答える 1

2

Visual Studio Online を含む、TFS を使用してパッケージの復元をセットアップする方法については、nuget.org に説明があります: http://docs.nuget.org/docs/reference/package-restore-with-team-build

VSO の既定の Build Process Templates は、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>
于 2014-04-18T09:03:31.387 に答える