每当我通过一键发布功能在VS 2010中发布我的MVC Web应用程序时(我没有做任何web.config转换或任何花哨的东西 - 但是!)。下次我来构建应用程序时出现以下错误:
使用注册为allowDefinition ='MachineToApplication'的部分是错误的 超出应用水平。此错误可能是由虚拟目录不存在引起的 在IIS中配置为应用程序。 in ... MyWebApp \ obj \ release \ package \ packagetmp \ web.config中
web.config文件的新副本确实是由VS2010在... MyWebApp \ _ obj \文件夹下创建的,所以我删除了整个obj文件夹,然后我又能够再次构建。
但我每次发布时都不应该这样做 - 我必须配置错误的内容 - 任何人都可以帮忙。
感谢。
答案 0 :(得分:1)
遗憾的是,将Web应用程序发布到文件系统是一个已知问题。这仍然会影响Visual Studio 2010的发布版本(RTM)。它不仅限于Beta或RC版本。
这个问题也“我”,我也不得不手动删除我的网站解决方案文件夹中Debug
文件夹中的Release
和obj
文件夹。
自动“解决方法”的真正答案可以在另一个Stack Overflow问题的this answer中找到:
简而言之,您需要从web.config
或Debug
文件夹(或两者都删除!)中删除Release
文件,并使用预构建命令(已配置)在解决方案的Build Events
页面的Project Properties
标签中:
del "$(ProjectDir)\obj\Debug\Package\PackageTmp\web.config"
del "$(ProjectDir)\obj\Release\Package\PackageTmp\web.config"
就个人而言,我删除了整个obj
文件夹,因为无论如何都会为每个版本重新创建所有这些文件。
答案 1 :(得分:0)
我刚刚找到了一个适用于我的工作,打开了你的web项目的.csproj,并将Project \ PropertyGroup节点下的节点更改为:
从这个: < MvcBuildViews>真< / MvcBuildViews>
到此: < MvcBuildViews&GT假LT; / MvcBuildViews>
这对我有用,希望它也适合你。