3

Azure Worker ロール プロジェクトで PostSharp 3 Ultimate を使用しています。tfs.visualstudio.comソース管理に使用しています。

今、PostSharp は好きではありませんNuGet Package Restore。ビルド サーバーでプロジェクトをビルドする前に、すべての nuget パッケージを復元する必要があります -- http://doc.postsharp.net/##nuget-restore

そこで、このリンク ( http://docs.nuget.org/docs/reference/package-restore-with-team-build )をたどって.proj、最初にすべての NuGet パッケージを復元し、次にビルド サーバーでソリューションをビルドするファイルを作成しました。 . このアプローチはASP .Net MVCAzure Web Site. しかしAzure Worker、同じ方法でプロジェクトをビルドしようとすると、次のエラーが発生します。

Exception Message: Please specify a Visual Studio Solution (.sln) to build. (type BuildFromSolutionException)
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)

私のソリューションの構造は次のとおりです。

+ Solution
|-+ packages
|-+ Tools
| |-+ NuGet
|   |-- NuGet.exe
|-+ Workers (Cloud Project)
|-+ Workers.QueueProcessor (Worker Role)
|-- Workers.Build.proj
|-- Workers.sln

Workers.Build.projTFS にチェックインした新しいファイルの内容は次のとおりです。

<?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)Workers.sln" />
    </ItemGroup>

    <Target Name="RestorePackages">
        <Exec Command="$(MSBuildThisFileDirectory)Tools\NuGet\NuGet.exe restore $(MSBuildThisFileDirectory)Workers.sln" />
    </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>
4

0 に答える 0