我有一个部署的Web应用程序项目,它引用了我的Utility.dll类库。我想对Utlity.dll进行更改并仅将.dll滚出。问题是当我这样做时,当我尝试启动我的网站时出现以下错误:
无法加载文件或程序集“Utility,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 3766481cef20a9d1”或其中一个依赖项。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)
是否有可以更改的设置,因此我不必推出整个Web应用程序项目 - 只有Utlity.dll?谢谢!
答案 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>