我有一个 Visual Studio 2010 解决方案,其中包含一个类库 (ProjectA) 和两个 Sharepoint 项目(ProjectB 和 ProjectC)。依赖顺序是 ProjectB 引用 ProejctA 和 ProjectC 引用 ProjectA 和 ProjectB。
在一台特定的开发机器上,尝试构建 ProjectC 时出现以下错误:
编译失败。无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息。
在查看融合日志时,我注意到以下错误:
* 装配活页夹日志条目 (14/06/2012 @ 09:38:32) *
操作失败。
绑定结果:hr = 0x80070002。该系统找不到指定的文件。
从以下位置加载的程序集管理器:C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
在可执行文件 C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe 下运行
--- 详细的错误日志如下。
=== 预绑定状态信息 === LOG: User = DOMAIN\username
日志:DisplayName = ProjectB,版本 = 0.0.0.0,文化 = 中性,PublicKeyToken = aaaaaaaaaaaaaaa,处理器架构 = MSIL(完全指定)
日志:Appbase = file:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/
日志:初始 PrivatePath = NULL
日志:动态基础 = NULL
日志:缓存基础 = NULL
日志:AppName = devenv.exe
调用程序集:(未知)。
LOG:此绑定在默认加载上下文中开始。
LOG:使用应用程序配置文件:C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.Config
LOG:使用主机配置文件:
LOG:使用 C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config 中的机器配置文件。
日志:策略后参考:ProjectB,版本=0.0.0.0,文化=中性,PublicKeyToken=aaaaaaaaaaaaaaaa,处理器架构=MSIL
日志:GAC 查找不成功。
日志:正在尝试下载新的 URL file:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/ProjectB.DLL。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/ProjectB/ProjectB.DLL。日志:正在尝试下载新的 URL file:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/PublicAssemblies/ProjectB.DLL。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/PublicAssemblies/ProjectB/ProjectB.DLL。日志:尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/PrivateAssemblies/ProjectB.DLL。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/PrivateAssemblies/ProjectB/ProjectB.DLL。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Microsoft/TemplateProviders/ProjectB.DLL。日志:尝试下载新的 URL file:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Microsoft/TemplateProviders/ProjectB/ProjectB.DLL。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/PrivateAssemblies/DataCollectors/ProjectB.DLL。日志:尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/PrivateAssemblies/DataCollectors/ProjectB/ProjectB.DLL。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/PrivateAssemblies/DataCollectors/x86/ProjectB.DLL。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/PrivateAssemblies/DataCollectors/x86/ProjectB/ProjectB.DLL。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Microsoft/Editor/ProjectB.DLL。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Microsoft/Editor/ProjectB/ProjectB.DLL。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Platform/Debugger/ProjectB.DLL。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Platform/Debugger/ProjectB/ProjectB.DLL。日志:尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/ProjectB.EXE。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/ProjectB/ProjectB.EXE。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/PublicAssemblies/ProjectB.EXE。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/PublicAssemblies/ProjectB/ProjectB.EXE。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/PrivateAssemblies/ProjectB.EXE。日志:正在尝试下载新的 URL file:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/PrivateAssemblies/ProjectB/ProjectB.EXE。日志:正在尝试下载新的 URL 文件:///C:/程序文件 (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Microsoft/TemplateProviders/ProjectB.EXE。日志:尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Microsoft/TemplateProviders/ProjectB/ProjectB.EXE。日志:正在尝试下载新的 URL file:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/PrivateAssemblies/DataCollectors/ProjectB.EXE。日志:正在尝试下载新的 URL file:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/PrivateAssemblies/DataCollectors/ProjectB/ProjectB.EXE。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/PrivateAssemblies/DataCollectors/x86/ProjectB.EXE。日志:正在尝试下载新的 URL 文件:///C:/程序文件 (x86)/Microsoft Visual Studio 10.0/Common7/IDE/PrivateAssemblies/DataCollectors/x86/ProjectB/ProjectB.EXE。日志:正在尝试下载新的 URL file:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Microsoft/Editor/ProjectB.EXE。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Microsoft/Editor/ProjectB/ProjectB.EXE。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Platform/Debugger/ProjectB.EXE。日志:正在尝试下载新的 URL file:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Platform/Debugger/ProjectB/ProjectB.EXE。LOG:所有探测 URL 都已尝试并失败。0/Common7/IDE/PrivateAssemblies/DataCollectors/x86/ProjectB/ProjectB.EXE。日志:正在尝试下载新的 URL file:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Microsoft/Editor/ProjectB.EXE。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Microsoft/Editor/ProjectB/ProjectB.EXE。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Platform/Debugger/ProjectB.EXE。日志:正在尝试下载新的 URL file:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Platform/Debugger/ProjectB/ProjectB.EXE。LOG:所有探测 URL 都已尝试并失败。0/Common7/IDE/PrivateAssemblies/DataCollectors/x86/ProjectB/ProjectB.EXE。日志:正在尝试下载新的 URL file:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Microsoft/Editor/ProjectB.EXE。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Microsoft/Editor/ProjectB/ProjectB.EXE。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Platform/Debugger/ProjectB.EXE。日志:正在尝试下载新的 URL file:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Platform/Debugger/ProjectB/ProjectB.EXE。LOG:所有探测 URL 都已尝试并失败。正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Microsoft/Editor/ProjectB.EXE。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Microsoft/Editor/ProjectB/ProjectB.EXE。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Platform/Debugger/ProjectB.EXE。日志:正在尝试下载新的 URL file:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Platform/Debugger/ProjectB/ProjectB.EXE。LOG:所有探测 URL 都已尝试并失败。正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Microsoft/Editor/ProjectB.EXE。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Microsoft/Editor/ProjectB/ProjectB.EXE。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Platform/Debugger/ProjectB.EXE。日志:正在尝试下载新的 URL file:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Platform/Debugger/ProjectB/ProjectB.EXE。LOG:所有探测 URL 都已尝试并失败。/程序文件 (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Microsoft/Editor/ProjectB/ProjectB.EXE。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Platform/Debugger/ProjectB.EXE。日志:正在尝试下载新的 URL file:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Platform/Debugger/ProjectB/ProjectB.EXE。LOG:所有探测 URL 都已尝试并失败。/程序文件 (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Microsoft/Editor/ProjectB/ProjectB.EXE。日志:正在尝试下载新的 URL 文件:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Platform/Debugger/ProjectB.EXE。日志:正在尝试下载新的 URL file:///C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Platform/Debugger/ProjectB/ProjectB.EXE。LOG:所有探测 URL 都已尝试并失败。/程序文件(x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Platform/Debugger/ProjectB/ProjectB.EXE。LOG:所有探测 URL 都已尝试并失败。/程序文件(x86)/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Platform/Debugger/ProjectB/ProjectB.EXE。LOG:所有探测 URL 都已尝试并失败。
我试过了:
- 删除对 ProjectB 的引用并重新添加它:
- a) 作为项目参考
- b) 作为手动参考,直接到 projectB 的 debug 文件夹
- 手动将 ProjectB.dll 放入 GAC
- 将“复制本地”选项从 True 更改为 False(并返回 True)
只有 (2) 将程序集放在 GAC 中才能构建 ProjectC。为什么它没有找到应有的程序集(并且在其他机器上)?