1

我有一个已部署的 Web 应用程序项目,它引用了我的 Utility.dll 类库。我想对 Utlity.dll 进行更改并仅推出该 .dll。问题是当我这样做时,当我尝试启动我的网站时出现以下错误:

无法加载文件或程序集“实用程序,版本=1.0.0.0,文化=中性,PublicKeyToken=3766481cef20a9d1”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

有没有我可以更改的设置,所以我不必推出整个 Web 应用程序项目 - 只有 Utlity.dll?谢谢!

4

4 回答 4

0

如果您的程序集版本已更改,您可以强制将版本恢复为 1.0.0.0

虽然不推荐这样做。

它还引用了哪些程序集,更新实用程序时是否也更新了它们?

此外,如果库已签名,并且引用程序集需要已签名的库,您很可能只需要更新整个项目。

于 2009-12-07T19:36:30.920 回答
0

尝试修改文件中Assemblies的部分以将web.config程序集版本更改为所需的版本

于 2009-12-07T19:39:10.620 回答
0

您网站根目录的“web.config”文件中有一个“程序集”部分。此部分存储有关所有引用程序集的信息,并且 Web 应用程序根据此文件加载程序集。每个引用的程序集在本节中都有一条记录,如下所示:

<add assembly="Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

尝试Version将此记录的属性(在我的示例中它的值为 7.0.3300.0)更改为必要的版本

于 2009-12-08T05:14:33.790 回答
0

我修改了 web.config 文件中的程序集绑定以解决此问题。我使用了以下已经存在的示例:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35" />
      <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35" />
      <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>
于 2010-06-14T18:29:07.537 回答