我将一个包含多个项目的.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(管理员)”)。
为什么构建整个解决方案时gacutil会失败,但只构建解决方案中的单个项目就能成功呢?