我可以在同一个ASP.NET MVC网站上使用两个版本的程序集吗?

时间:2013-12-24 00:54:38

标签: c# .net asp.net-mvc dll

我有一个使用System.Web.Http.dll版本4的Umbraco 7.0网站,我想集成一个使用System.Web.Http.dll版本5的Web API 2项目。

我已经阅读并尝试了许多方法来尝试让两个dll都正常工作,但现在我不太确定它是否可行。

我期望工作的是将dll放在单独的文件夹中,并在web.config中引用它们。我尝试过的事情:

<configuration>
    <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <probing privatePath="bin;c:\umbraco\dll\folder;c:\webapi\dll\folder"/>
    </assemblyBinding>
    </runtime>
</configuration>

<dependentAssembly>
    <assemblyIdentity name="System.Web.Http"  culture="neutral" publicKeyToken="31bf3856ad364e35"/>
    <codeBase version="4.0.0.0" href="FILE:c:\umbraco\dll\folder\System.Web.Http.dll"/>
</dependentAssembly>

<dependentAssembly>
    <assemblyIdentity name="System.Web.Http"  culture="neutral" publicKeyToken="31bf3856ad364e35"/>
    <codeBase version="5.0.0.0" href="FILE:c:\webapi\dll\folder\System.Web.Http.dll"/>
</dependentAssembly>

我一直得到以下两个中的一个:

CS0012: The type 'System.Web.Http.HttpConfiguration' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

CS1705: Assembly 'WebApi2Test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' uses 'System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

1 个答案:

答案 0 :(得分:0)

这是不可能的。 appdomain将加载其中一个dll,然后尝试上传另一个dll,但是你会遇到程序集不匹配错误。