VS 2013 MVC项目中 Web.tt 导致错误"value does not fall within the expected range"



在VS 2013中有其他人遇到过这种情况吗?有什么办法修复吗?

  1. 使用visualstudio2013创建一个新的asp.net web应用程序。

  2. 在"为:添加文件夹和核心引用"下,选中MVC。单击"确定"。

  3. 打开web.config并复制内容。

  4. 为您的项目添加一个名为"Web.tt"的新文本模板

  5. 粘贴web.config的内容,并将输出扩展名更改为.config。您只需要这一行(然后是它之后的web.config内容):<#@输出扩展名=".config"#>

  6. 确保输出扩展行和粘贴的web.config的第一行之间没有空格。

  7. 删除web.config(包括发布和调试生成目标),使web.tt成为web.config的全部内容。

  8. 右键单击Web.tt并运行自定义工具。请确保web.config已创建,并且现在已成为项目的一部分。

  9. 右键单击Controllers文件夹并选择Add->Controller。。。

  10. 选择MVC 5控制器-空,然后单击添加。

  11. 命名控制器,然后单击"添加"。

结果:

错误运行所选代码生成器时出错:"值不在预期范围内。">

微软回复我,他们说这是故意的。。。

分辨率

无法删除Web.config以按设计原样添加控制器。如果在下面修改web.config,Visual Studio将崩溃。

解决方法:

配置文件可以包括其他配置文件。Web.config包含一个extensions.config并生成一个只生成extensions.cnfig.的extensions.tt

参考:web.config可以从外部xml文件中读取吗?

征得你的同意,我将继续审理此案。如果您有任何后续问题,请随时回复我。

感谢您选择Microsoft!

这件事发生在我身上是因为我将web.config独占到了我的项目之外。

Just include web.config back and everything ok.

我认为这是带有MVC5的Visual Studio中的一个错误。为了解决这个问题,我们没有从T4模板生成web.config,而是为每个构建环境使用XML转换。

相关内容

最新更新