2

我有一个问题。我们正在工作中升级到 VS 2012。当我们打开一个 VS 2010 项目时,Visual Studio 会转换该项目。这很好,因为 VS 2010 仍然可以使用该项目(yay microsoft)。但是,在解决方案目录中创建了一个 \Backup 文件夹。这是作为迁移的一部分创建的吗?有没有办法控制它?

我问的原因是创建此文件夹的过程将 web.config 文件复制到该文件夹​​中。如果您随后尝试构建解决方案(这些是 MVC 项目),我们会收到“ It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.”错误。原因是子文件夹而不是根文件夹中有一个 web.config 文件。我们没有做出也不想做出这种改变,也无法弄清楚如何控制它。删除 Backup\Web.config 文件可修复该错误。将其从 web.config 重命名为 web.config.bak 可以解决问题。

我真的不想必须亲自打开和转换每个项目,也不希望随机的人碰到这个问题。知道如何阻止 VS 创建备份文件夹,或者如何使其在我的文档工作室文件夹等中创建它们?我找不到任何设置来控制它,也找不到任何好的信息。

4

2 回答 2

1

碰巧,您是否使用 MvcBuildViews 属性在构建时预编译您的视图?如果是这样,这就是您遇到此问题的原因(因为它在同一目录中进行预编译,它不会过滤掉项目目录下的任何文件)。

请注意,如果您为此项目使用发布功能,也会遇到此问题。Publish 在应用 web.config 转换之前和之后复制中间构建输出目录(默认为 obj/)下的 web.config。

好消息是,在 VS2012 或安装了最新 Azure SDK 的 VS2010 中,Web 应用程序项目(包括 MVC)现在支持预编译。这些设置当前位于项目属性中的 Package/Publish Web 选项卡下。

(这并没有直接解决您关于备份文件夹的问题,但评论太长了。)

于 2012-10-24T18:12:56.170 回答
0

我发现没有办法控制它。我们必须继续运行并将每个项目转换为 2012 年并删除备份文件夹以防止任何其他团队遇到它。

于 2012-11-29T22:49:45.943 回答