0

每次我下载一些开源或付费 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 项目文件夹下看到的没有或全部引用?

谢谢,

4

1 回答 1

1

也许尝试重新安装 MVC3?Web.config 中的那些引用是可以的,因为它们应该是......

这是我的Web.config,在那部分....

<add assembly="System.Web.Abstractions, Version=4.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.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
于 2013-08-16T16:44:37.447 回答