Visual Studio Online でビルドするソリューションを取得しようとして、同様の問題に遭遇しました。問題は、プロジェクトのビルド前にパッケージが復元されることですが、その前に、プロジェクト ファイルとパッケージからのターゲット インクルージョン (まだ復元されていません) が既に解釈されています。
ここで説明されているように、ビルド前フックを使用します。
http://sedodream.com/2010/10/22/MSBuildExtendingTheSolutionBuild.aspx
before.solutionname.sln.targets ファイルに次のようなものを入れて、最初のプロジェクトがビルドされる前にすべてのパッケージを強制的に復元します。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0"
DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="BeforeBuild" BeforeTargets="Build">
<Message Text="Restoring all nuget packages before build" Importance="high">
</Message>
<Exec Command=".\.nuget\NuGet.exe restore YourSolution.sln" />
</Target>
</Project>
外部パッケージ ソースがある場合は、.nuget フォルダーにもある nuget.config ファイルでそれらを構成します。例えば:
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
<packageSources>
<add key="NuGet official package source" value="https://nuget.org/api/v2/" />
<add key="YourSource" value="http://yoursource.somewhere.net/nuget" />
</packageSources>
<packageRestore>
<!-- Allow NuGet to download missing packages -->
<add key="enabled" value="True" />
<!-- Automatically check for missing packages during build in Visual Studio -->
<add key="automatic" value="True" />
</packageRestore>
</configuration>