Sea*_*ken 5 c# attributes c-preprocessor
C#中值得信赖的旧预处理程序指令在我编写时看起来效果很好:
#if DEBUG
...
(Some code)
...
#endif
Run Code Online (Sandbox Code Playgroud)
但是,条件块中包含的属性似乎继续得到处理,我得到错误指示.例如,[AssemblyVersion(...)]
在条件块内围绕一个似乎没有任何影响.
我可以详细说明我们为什么要有条件地忽略[AssemblyVersion(..)],但它无关紧要.有任何想法吗?
这对我来说正常.在我的AssemblyInfo.cs文件中,我有以下内容:
#if DEBUG
[assembly: AssemblyConfiguration("Debug")]
#else
[assembly: AssemblyConfiguration("Release")]
#endif
Run Code Online (Sandbox Code Playgroud)
查看Reflector中编译的程序集,我看到了正确的属性.
您应该确保您的DEBUG符号仅在项目属性中定义,而不是在代码中的任何其他位置定义为实际的#define DEBUG指令.如果直接在代码中定义它,它将仅对该文件有效,而不是整个项目.在项目属性中定义它将导致它对整个项目有效.