签署第三方程序集并将其添加到GAC后,我收到以下错误:还有程序集绑定日志条目显示this error
它说不匹配的程序集不确定如何删除所有obj和bin折叠并批量构建应用程序+重新导入dll。
Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\11.0\WebDev.WebServer40.exe
--- A detailed error log follows.
=== Pre-bind state information ===
LOG: User = AKBARCA\user
LOG: DisplayName = ClubStarterKit.Core, Version=3.0.1.0, Culture=neutral, PublicKeyToken=null
(Fully-specified)
LOG: Appbase =
file:///C:/Users/user/Desktop/NhibernateMediumTrust/NhibernateMediumUpgrade/direct/clubstar
terkit v3 preview/ClubStarterKit.Web/
LOG: DEVPATH = C:\ProgramData\Red Gate\.NET Reflector\DevPath
LOG: Initial PrivatePath =
C:\Users\user\Desktop\NhibernateMediumTrust\NhibernateMediumUpgrade\direct\clubstarterkit v3 preview\ClubStarterKit.Web\bin
Calling assembly : ClubStarterKit.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
答案 0 :(得分:31)
根据我的经验,这种情况会发生,通常是在您发布应用程序之后以及当您使用不同版本的nuget软件包时。如果这恰好也是您的情况,我发现修复它的最佳方法是右键单击解决方案(而不是单个项目)并选择“Manage Nuget Packages”。然后,在已安装的软件包中找到有问题的程序集。您可能会多次列出它。在每个旧版本的软件包上单击“管理”,然后取消选中所有项目。一旦只有最新版本的包仍然在列表中。单击“管理”,然后重新检查需要该软件包的任何项目。这将基本上将它们全部升级为使用相同版本的软件包,并应解决您的不匹配错误。
答案 1 :(得分:5)
我遇到了类似的问题。就我而言,我的解决方案中有多个项目。
其中一个项目是引用EntityFramework 4.0,该项目在另一个引用EntityFramework 5.0的项目中被引用。我把它们同步了,问题就消失了。
答案 2 :(得分:3)
...坎 我遇到了类似的错误信息。
在我的情况下,我手动更新了程序集的版本。
在引用的程序集中,我有另一个版本......
所以,我在web.config中更新了它。
这解决了我的问题。
您的=== Pre-bind state information ===
似乎不完整。
通常它显示执行,最后一行显示错误,因此,我们只能帮助分享我们的经验。
例:
我希望遇到此问题的其他人认为这有用。
答案 3 :(得分:2)
就我而言,当依赖程序集的web.config <bindingRedirect>
中指定的版本(例如Newtonsoft.Json)与实际版本中的版本不匹配时,会发生错误。 bin文件夹。更新web.config中的版本号后,问题就解决了。
答案 4 :(得分:1)
当我在过去遇到这个问题时,我从gac中删除了所有项目的dll,重建了解决方案,然后iisreset
并且它已经解决了。
答案 5 :(得分:0)
我使用 FASTjson :
收到此错误 _jsonConfig = fastJSON.JSON.ToObject<jsonConfig>(jsonConfigFileContents);
这条线失败了:
Type t = Type.GetType(typename);
在 System.RuntimeTypeHandle.GetTypeByName
中导致异常与JSON对象模型相比,问题是JSON文件存在差异。
解决方案是将JSON对象模型重新保存到文件,例如:
string jsonSettings = fastJSON.JSON.ToJSON(JSONObjectModel);
File.WriteAllText(JSONFilePath, jsonSettings);
答案 6 :(得分:0)
答案 7 :(得分:0)
我有一个不同的原因:在我的情况下,我之前使用过各种nuget包版本,并且我有一个app.config
由于某种原因已经自动生成了这种内容:
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.1.1.0" newVersion="1.1.1.0" />
</dependentAssembly>
所以我只安装了版本1.1.0.0,但是由于这个重定向指令,它查找了1.1.1.0,即使Visual Studio安装了1.1.0.0的nuget。将newVersion更改为1.1.0.0修复了所有内容:
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.1.1.0" newVersion="1.1.0.0" />
</dependentAssembly>