我在使用条件编译的标准 WinForms 应用程序中遇到问题
我有 2 个引用相同 Program.cs 文件的 .csproj(它们也位于磁盘上的同一文件夹中)
在 Project1.csproj 我定义了一个名为 CONDITION_1 的条件编译符号
在 Project2.csproj 我定义了一个名为 CONDITION_2 的条件编译符号
static void Main()
{
#if CONDITION_1
DoSomething();
#elif CONDITION_2
DoSomethingElse();
#else
DoAnotherThing();
#endif
ContinueDoingStuff();
}
这些符号定义了“所有配置”的项目设置。在我的调试环境中,一切都很好。但是,当我重新检查源代码并在我的构建机器上构建时,我在反编译器中打开 Project2.exe,我注意到我的源代码是这样的
static void Main()
{
DoAnotherThing();
ContinueDoingStuff();
}
如果我在 Visual Studio 中打开解决方案文件并进行常规构建(不清理、不重建、不更改代码)
我打开 exe 并注意到 Project2.exe 的正确反编译源...
static void Main()
{
DoSomethingElse();
ContinueDoingStuff();
}
有任何想法吗?是否有可能在编译时没有正确设置条件符号?