3

我有一个 MVC 3.0 和 MVC 4.0 项目并排

在此处输入图像描述

我这样做是为了在两个解决方案之间共享资源。当我更改配置文件时它工作正常。细节的变化。

在 MVC 3 中。

<assemblies>
  <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>

<pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages"/>
      </namespaces>
    </pages>

当我删除<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />MVC 4 工作正常。在我在 MVC 3.0 中调试项目后,它显示错误 msg( The type or namespace name 'Ajax' does not exist in the namespace 'System.Web.Mvc' (are you missing an assembly reference?) ),因为我删除了“System.Web.Mvc,Version=3.0.0.0”,如果我必须运行这意味着我必须再次放置 refreance。在这里,我正在手动执行所有操作,有什么方法可以自动执行此操作吗?

例如,服务器端的两个 xml 文件我读取了该 xml 文件并替换了配置文件。

已经试过了。

在 MVC 4 项目中,我使用它WebConfigurationManager来删除它的工作原理,在我打开 MVC 3 后它显示错误消息。

4

1 回答 1

3

您可以为 Mvc3 创建新的构建配置并运行将覆盖您的 web.config 的预构建事件,这是我从Hanselman采用的想法。

如果您按照链接进行设置,则设置的唯一区别是您将拥有一个名为

Web.Config.Mvc3  (and possibly Web.Config.Mvc3Release)

并将 Mvc 保留为您的默认构建

Web.Config.Debug
Web.Config.Release
于 2012-11-26T13:11:19.293 回答