无法加载文件或程序集

时间:2010-02-14 10:29:11

标签: asp.net visual-studio

当我尝试在Visual Studio 2008中进行调试时,我收到以下错误。我已经清理了ASP.NET临时文件夹并重新启动了VS.我还删除了所谓的破坏参考并将其添加回来。但似乎没有任何效果。有没有人遇到类似情况并且有解决方案吗?

  

无法加载文件或程序集   '“GCS.Common(asif mohammed's   冲突的副本2010-01-29)“'或一个   它的依赖关系。给定的   程序集名称或代码库无效。   (来自HRESULT的异常:0x80131047)

     

[FileLoadException:无法加载   文件或程序集'“GCS.Common(asif   穆罕默德的冲突副本   2010-01-29)“'或其中一个   依赖。给定的程序集名称   或代码库无效。 (例外   来自HRESULT:0x80131047)]
  System.Reflection.AssemblyName.nInit(大会和放大器;   assembly,Boolean forIntrospection,   Boolean raiseResolveEvent)+0
  System.Reflection.Assembly.InternalLoad(字符串   assemblyString,证据   assemblySecurity,StackCrawlMark&   stackMark,布局forIntrospection)   +114 System.Reflection.Assembly.Load(String   assemblyString)+28
  System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串   assemblyName,布尔starDirective)   46

     

[ConfigurationErrorsException:可以   不加载文件或程序集'“GCS.Common   (asif mohammed的冲突副本   2010-01-29)“'或其中一个   依赖。给定的程序集名称   或代码库无效。 (例外   来自HRESULT:0x80131047)]
  System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串   assemblyName,布尔starDirective)   +613 System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory()   +203 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo   ai)+105
  System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection   compConfig)+178
  System.Web.Compilation.BuildProvidersCompiler..ctor(VirtualPath   configPath,布尔值   supportLocalization,String   outputAssemblyName)+54
  System.Web.Compilation.CodeDirectoryCompiler.GetCodeDirectoryAssembly(VirtualPath   virtualDir,CodeDirectoryType dirType,   字符串assemblyName,StringSet   excludedSubdirectories,布尔   isDirectoryAllowed)+8809426
  System.Web.Compilation.BuildManager.CompileCodeDirectory(VirtualPath   virtualDir,CodeDirectoryType dirType,   字符串assemblyName,StringSet   excludedSubdirectories)+128
  System.Web.Compilation.BuildManager.CompileCodeDirectories()   +265 System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()   320

     

[HttpException(0x80004005):无法   加载文件或程序集'“GCS.Common   (asif mohammed的冲突副本   2010-01-29)“'或其中一个   依赖。给定的程序集名称   或代码库无效。 (例外   来自HRESULT:0x80131047)]
  System.Web.Compilation.BuildManager.ReportTopLevelCompilationException()   +58 System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()   +512 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager   appManager,IApplicationHost appHost,   IConfigMapPathFactory   configMapPathFactory,   HostingEnvironmentParameters   hostingParameters)+729

     

[HttpException(0x80004005):无法   加载文件或程序集'“GCS.Common   (asif mohammed的冲突副本   2010-01-29)“'或其中一个   依赖。给定的程序集名称   或代码库无效。 (例外   来自HRESULT:0x80131047)]
  System.Web.HttpRuntime.FirstRequestInit(HttpContext的   上下文)+8890735
  System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext的   上下文)+85
  System.Web.HttpRuntime.ProcessRequestInternal(的HttpWorkerRequest   wr)+259

5 个答案:

答案 0 :(得分:40)

  

“* * * * * * * *与####冲突的副本 - ## - ##”

好像你正在使用 dropbox 来同步文件,这个“冲突的副本”文件dropbox会创建,如果2台计算机离线更改同一个文件..当它们联机时,dropbox同步算法会混淆哪个文件是正确的一个,所以它保留两个文件重命名为这个名称模式。

在你的情况下:

这发生在项目的bin目录中,只是删除带有“冲突副本”部分的文件并保留另一个..如果你的项目从另一个位置引用dll,则删除两者,并重建解决方案。

答案 1 :(得分:12)

程序集加载问题是.NET开发人员需要学习解决的问题。有许多可能的原因,解决问题有两件事你需要。首先要了解.NET finds assesmblies的方式。其次是Fusion Log ViewerFuslogvw.exe),它具有加载过程的知识,可以让您识别出工作和失败的原因。

通常,获得加载异常的原因是您想要的程序集不在GAC或探测路径中。它也可能是由于目标程序集没有为必要的平台构建(例如,64位进程无法加载仅为“x86”构建的程序集。)

答案 2 :(得分:3)

我是对的。这是我的版本控制软件造成的。当我得到最新版本时,它以某种方式添加了我所有程序集的附加副本(asif mohammed的冲突副本等等),在几乎考虑重新安装VS后,我只需要删除位于我的文件系统中的偷偷摸摸的dll。

感谢所有回复。了解如何装配装配工作,所以一切都不会丢失。

答案 3 :(得分:1)

完全同意理查德......
还有一点提示:阅读异常跟踪我认为“GCS.Common(asif mohammed的冲突副本2010-01-29)”是一个非常奇怪的名字,不是吗? ;-)
您是否重命名了某个文件,可能在bin文件夹中?

答案 4 :(得分:0)

这看起来不是一个非常好的程序集名称,但实际上它确实存在......

您似乎在某处手动指定此程序集,可能在web.config中?

如果是这样,请尝试使用Assembly Qualified Name,可以在web.config中找到微软放置的任何程序集的示例。不要担心版本/文化或密钥,只需“类型名称,程序集名称”通常就足够了。

e.g。而不是:

'"GCS.Common (asif mohammed's conflicted copy 2010-01-29)"

使用

'"GCS.Common (asif mohammed's conflicted copy 2010-01-29), [insert assembly filename less extension here]"

P.S。我的建议是使用与c#中的标识符相同的规则来命名程序集。从长远来看,你的生活会更轻松。