如何在MVC 3和MVC 4项目之间共享web.config文件

时间:2012-11-26 12:52:32

标签: asp.net-mvc asp.net-mvc-3 web-config asp.net-mvc-4

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

enter image description here

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

在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中调试项目后显示错误消息(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后,它显示错误消息。

1 个答案:

答案 0 :(得分:3)

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

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

的配置
Web.Config.Mvc3  (and possibly Web.Config.Mvc3Release)

并将Mvc作为默认构建

Web.Config.Debug
Web.Config.Release