複数のプロジェクトを含む .NET 2.0 ソリューションを Visual Studio 2008 (すべてが正しくビルドされる) から Visual Studio 2010 に変換しました。管理者モードで実行されている Visual Studio 2010 にソリューションをロードし、[ソリューションのビルド] を選択しました。一部のプロジェクトでは、一部のビルド後の手順でビルドが失敗しました。
Microsoft (R) .NET Global Assembly Cache Utility. Version 3.5.30729.1
Copyright (c) Microsoft Corporation. All rights reserved.
Failure adding assembly to the cache: Access denied. You might not have administrative credentials to perform this task. Contact your system administrator for assistance.
36>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.Targets(3717,9): error MSB3073: The command ""C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\gacutil.exe" /i MyAssembly.dll" exited with code 1.
これらの同じプロジェクトを選択し、ソリューション全体ではなく個々のプロジェクトのみをビルドすると、gacutil コマンドは成功します。
エラー メッセージは、アクセス許可に問題があるかのように聞こえます (「アクセスが拒否されました」) が、Visual Studio 2010 が管理者モードで実行されていることを確認しました -- タイトル バーに表示されます (「MySolution - Microsoft Visual Studio (Administrator)」 」)。
ソリューション全体をビルドすると gacutil が失敗するのに、ソリューション内の 1 つのプロジェクトだけをビルドすると成功するのはなぜですか?