1

VSO と Azure Cloud Services (Web ロール) を使用しています。

以前は、build.projVSO ビルド定義に次のファイルを使用していました。

<?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)*.sln" />
  </ItemGroup>
  <Target Name="RestorePackages">
    <Exec Command="&quot;$(MSBuildThisFileDirectory).nuget\NuGet.exe&quot; restore &quot;%(Solution.Identity)&quot;" />
  </Target>
  <Target Name="Clean">
    <MSBuild Targets="Clean" Projects="@(Solution)" Properties="$(ProjectProperties)" />
  </Target>
  <Target Name="Build" DependsOnTargets="RestorePackages">
    <MSBuild Targets="Build" Projects="@(Solution)" Properties="$(ProjectProperties)" />
  </Target>
  <Target Name="Rebuild" DependsOnTargets="RestorePackages">
    <MSBuild Targets="Rebuild" Projects="@(Solution)" Properties="$(ProjectProperties)" />
  </Target>
</Project>

これは、MSBuild が実行を開始する前に NuGet 復元を実行するためです。これは、NuGetが推奨するアプローチです。

この MSDN 記事で説明されているように、Azure クラウド サービスとの継続的な統合を設定しようとしています。

これは、TfvcContinuousDeploymentTemplate.12.xmlビルド プロセス テンプレートを使用する必要があることを意味します。

ただし、ファイルをビルドするようにテンプレートを設定するbuild.projと、次のビルド エラーが発生します。

Exception Message: Deploying to Azure Cloud Service requires a Visual Studio Solution (.sln) that contains either a ccproj or a lsxproj. (type DeploymentException)
Exception Stack Trace:    at System.Activities.Statements.Throw.Execute(CodeActivityContext context)
   at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
   at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

を使用する.slnと、すべて正常に動作します。ただし、明らかに、ビルドの前に NuGet の復元を行う必要もあります。

継続的インテグレーションと NuGet 復元の両方を機能させるための適切なソリューションは何ですか?

4

1 に答える 1

1

これが冗長であることを知りました。NuGet 復元は VSO/TFS に既に組み込まれているため、手動で実行する必要はありません。

詳細はこちらをご覧ください

于 2015-05-05T13:11:00.290 に答える