Par*_*Par 9 views conditional-compilation asp.net-mvc-3
在我的项目的"属性"中,我有以下内容:

我想检查TEST符号是否存在,然后才做一些事情.所以我做了你在下面的图片和它所在的课程中所看到的.但是这在视图中不起作用.

即使TEST已定义,此块中的文本也是灰色的!
如果TEST定义了,我怎么能使它工作?
Eri*_* J. 14
而不是根据接受的答案在web.config中指定编译器标志(这也需要在web.config中指定编译器版本,这是非标准位置),我使用以下内容:
将方法添加到我的模型共享的基类
public bool IsDebugBuild
{
get
{
#if DEBUG
return true;
#else
return false;
#endif
}
}
Run Code Online (Sandbox Code Playgroud)
在我的视图中使用该方法
if (mm.IsDebugBuild) {
<div class="debug">
// Do Stuff
</div>
}
Run Code Online (Sandbox Code Playgroud)
Joã*_*elo 10
问题与以下事实有关:仅在运行应用程序时编译视图,因此TEST编译器不再应用您定义的符号,因为它不了解它.
假设你使用的是C#,你需要配置编译器使用的TEST建设的意见时,符号,为此,你需要重写它的配置中Web.config使用下列内容:
<system.codedom>
<compilers>
<compiler
language="c#;cs;csharp"
extension=".cs"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
compilerOptions="/define:TEST"
warningLevel="1" />
</compilers>
</system.codedom>
Run Code Online (Sandbox Code Playgroud)
重要的是你定义compilerOptions="/define:TEST".您需要的其余配置可以适应您的特定需求,例如在.NET 2.0或.NET 4.0之间切换.
如果你直接应用Web.config它,它将起作用,但TEST每次都会定义.因此,您应该真正做的是使用Web.config转换,以便该符号仅应用于正确的构建配置.
| 归档时间: |
|
| 查看次数: |
3717 次 |
| 最近记录: |