每次我下载一些开源或付费 MVC3 应用程序时,我都会遇到一些程序集冲突,即:缺少程序集、错误版本等。所以我想我应该问一个更普遍的问题:
在一个典型的项目中,您有一个名为 References 的文件夹,所有程序集似乎都在该文件夹中,以及它们的版本号和“复制到本地”选项等。
然而,在该文件夹中的 10-20 个引用中,我经常在 web.config 中找到一些引用。
我在 web.config 中遇到的这种烦人的混淆的最新案例:
<compilation debug="false" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
我收到一个项目试图加载 System.Web.Helpers, Version=1.0.0.0 的错误 - 它没有找到。
在 References 文件夹中,引用的 System.Web.Helpers 是 2.0.0 版本,无法更改此版本号,因为它是灰色的。更改为特定版本不会改变任何内容。
问题:
为什么 Web.config 中有 4 个引用?为什么不只是参考文件夹?
为什么我经常在 web.config 中找到部分数量的程序集标签,而不是在 References 项目文件夹下看到的没有或全部引用?
谢谢,