仅更新ASP.NET应用程序中的.dll参考

时间:2009-12-07 19:34:33

标签: .net base-class-library

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

  

无法加载文件或程序集“Utility,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 3766481cef20a9d1”或其中一个依赖项。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)

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

4 个答案:

答案 0 :(得分:0)

如果程序集的版本发生了变化,您可以强制将版本恢复为1.0.0.0

虽然不建议这样做。

它还引用了哪些程序集,并且在更新实用程序时也更新了它们吗?

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

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

答案 3 :(得分: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>