Ear*_*rlz 5 c# compiler-errors conditional-compilation visual-studio
我无法让Visual Studio按照我的预期行事.我创建了2个配置文件.一个定义了符号FOO,另一个定义了符号BAR.我有这个代码:
static class MyClass{
#if FOO
public static string const MyData="foo defined";
#endif
#if BAR /*yes, I know #elif would work here too.. just trying to be simple*/
public static string const MyData="bar defined";
#endif
}
Run Code Online (Sandbox Code Playgroud)
然后在我的另一个文件中
if(MyClass.MyData=="foo defined").....
Run Code Online (Sandbox Code Playgroud)
好吧,在我的应用程序中,我收到一个错误,即未定义MyClass.MyData.
此外,如果我在FOO配置文件上有它并输入类似#error test
之后#if FOO
它将有一个构建错误,但如果我删除它将构建就好了,当我去运行它时,我会得到一个编译错误, MyClass不包含MyData的定义.此外,这是一个ASP.Net Web应用程序.
有人可以帮我弄清楚如何使用条件编译吗?它就好像Visual Studio使用编译符号正确编译它一样,但是每当ASP.Net网络服务器执行它时,它都会重新编译它而没有任何符号...但这只是没有任何意义,为什么它会这样做..
编辑:如果我使用FOO或BAR配置文件并不重要,它们似乎都没有像它们那样定义MyData符号.
EDIT2:
好的,这对于复制很重要!App_Code
在解决方案中创建一个新文件夹,然后在其中添加.cs文件,然后将MyClass添加到其中.这将重现在空白项目中工作的错误.我实际上简化了它
#if !(FOO || BAR)
#error neither foo or bar defined
#endif
Run Code Online (Sandbox Code Playgroud)
看起来Visual Studio没有为App_Code中的常规.cs文件设置条件编译符号
归档时间: |
|
查看次数: |
3934 次 |
最近记录: |