我已将包含多个项目的 .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 在构建整个解决方案时会失败,但在解决方案中只构建一个项目时会成功?