Visual Studio的“发布”功能阻止我的ASP.NET MVC应用程序编译

时间:2011-09-16 23:55:20

标签: asp.net asp.net-mvc visual-studio web-config publish

我在Visual Studio中发布我的ASP.NET MVC应用程序时发现了一个奇怪的问题:

发布后,它将无法编译。我收到这个错误:

  

在应用程序级别之外使用注册为allowDefinition ='MachineToApplication'的部分是错误的。此错误可能是由于虚拟目录未在IIS中配置为应用程序。

到目前为止,根据我的研究,当包含某些部分的Web.config文件比项目文件夹层次结构中的root更深时,通常会发生此错误。

好吧,事实证明我在层次结构中有更深层次的Web.config文件,我在这些文件夹中找到了这些文件:

  • [项目文件夹] \ obj \ Release \ Package \ PackageTmp
  • [项目文件夹] \ obj \ Release \ TransformWebConfig \ original
  • [项目文件夹] \ obj \ Release \ TransformWebConfig \ transformed

问题是,我没有将这些文件放在这些位置。它们在发布过程中被复制(特别是FTP发布)。如果我手动删除Web.configs(或重建我的解决方案),我再次能够编译。 (好吧,重建通常有效 - 如果我在发布后从Debug切换到Release或反之亦然,它会失败。)

现在,我的问题:

我搞砸了一个设置或做错了什么,或者这基本上只是我必须处理的麻烦?我应该担心吗?这个问题是否可以解决?

1 个答案:

答案 0 :(得分:5)

您是否在网络项目.csproj文件中使用<MvcBuildViews>true</MvcBuildViews>?如果是的话,那可能就是问题所在。把它弄错了,问题就消失了。

如果你真的想使用MvcBuildViews功能的另一个解决方案在这里描述:link。我没有测试它,但似乎有很好的评论!