我有另一个这些“无法加载文件或程序集或其依赖项之一”的问题。

附加信息:无法加载 文件或程序集 “Microsoft.Practices.Unity, Version = 1.2.0.0、文化=中立, 都31 bf3856ad364e35”或 它的依赖项之一。在位于 程序集的显式定义可以 不匹配程序集引用。 (异常来自HRESULT: 0x80131040)

我不知道是什么导致了这种情况,也不知道如何调试它来找到原因。

我在我的解决方案目录.csproj文件中做了一个搜索,我有Unity的每个地方:

参考 包括= " Microsoft.Practices.Unity, Version = 2.0.414.0、文化=中立, 都31 bf3856ad364e35, processorArchitecture = MSIL”

在我的任何项目中都找不到任何与1.2.0.0相反的参考。

我该怎么解决这个问题呢?


当前回答

打开IIS管理器

选择应用程序池

然后选择您正在使用的池

进入高级设置(在右侧)

将“启用32位应用程序”的标志为true。

其他回答

Goto:解决方案->包 点击高级选项卡(在页面下方找到) 将您的dll添加到其他程序集(这样我们就可以在sharepoint中添加外部dll)。

您的项目的csproj文件必须包含Microsoft.Practices.Unity的包引用,在global-packages文件夹(%userprofile%.nuget\packages)中找不到,运行dotnet还原可以解决这个问题

我有这个问题,这个错误其实很愚蠢。我为.dll文件指定了错误的位置,在将位置更改为正确的位置后,加载发生了正确的情况(回答,所以其他人不要犯这个错误)。

尝试清除解决方案中的调试和发布文件夹。然后再次删除并添加unity。

我今天遇到了这个问题,对我来说,这个问题非常奇怪:

  <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Host.SystemWeb" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-3.1.0" newVersion="3.1.0.0" />
  </dependentAssembly>0.

注意XML末尾的零散字符——不知怎么的,这些字符已经从版本号移到了这个XML块的末尾!

  <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Host.SystemWeb" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
  </dependentAssembly>

改成上面的,瞧!一切都恢复正常了。