T4MVC排除文件或控制器

时间:2012-09-12 23:20:55

标签: asp.net-mvc-3 t4 t4mvc

我有一个仅在Debug(使用#if DEBUG)中构建的控制器,用于存放我在生产服务器上不需要的一些测试方法。

我遇到的问题是使用T4MVC我得到一个基于控制器的派生类,所有方法都有重载。一旦我尝试在Release模式下构建基类和虚拟操作方法不再存在,我就会出现构建错误。

理想情况下,我希望能够从T4MVC中排除控制器,但我无法在设置文件中看到这样做的方法以及这个问题的答案:T4MVC How to Exclude Individual Files表明它不可能。

任何人都知道如何做到这一点或者能想到一个好的工作?

2 个答案:

答案 0 :(得分:3)

使用控制器上的T4MVC属性

[T4MVC(false)]
public Controller ControllerToIgnore //...

为我的目的工作(从生成中排除特定控制器)。

来自T4MVC documentation

答案 1 :(得分:2)

考虑将测试方法和控制器分成一个独立的项目,该项目取决于您的生产代码。这样你就不需要#if Debug个东西了。我不确定您的设置是什么,但您可以尝试使用#if !Debug子句中包含的NonActionAttribute。因此,您的生产代码不会将这些方法作为控制器上的操作运行。但这与项目布局错误很不相干。