背景:
我有一个 C# Windows 窗体应用程序,它包含一个 Windows 服务和一个用于配置系统设置以及与该服务通信的接口。
期望的结果:
我想构建两个版本的解决方案 - 一个包含所有 Windows 服务相关代码和表单元素的客户端版本和一个包含所有内容的服务器版本。
该表单包含一个选项卡式控件,其中一个选项卡包含用于使用套接字与 Windows 服务交互的元素。我真正想要实现的是,对于完整构建,包含服务相关元素的选项卡被编译,而对于条件构建,相同的选项卡被排除在外。
问题:
在这个阶段,我围绕 Windows 服务相关代码使用了 #if 指令。例如:
#if SERVERBUILD
//Code relating to Windows service that I do not want to compile
//for a client version.
#endif
在上面的示例中,“SERVERBUILD”对应于我可以通过配置管理器选择的构建配置(与标准的“发布”构建选项相反)。
我遇到的问题是我必须将这个#if 指令包装起来的一些代码位于标题为“ Windows 窗体设计器生成的代码”区域的 WinForm.Designer.cs 文件中。
似乎正在发生的事情是,当我对某些表单属性进行更改时,整个代码区域似乎被删除并重新生成,从而删除了我添加的#if 部分。
- 我会以正确的方式解决这个问题吗?
- 有没有办法避免丢失我在 WinForm.Designer.cs 代码中所做的更改的情况?
我真的很感谢任何有条件编译和这类东西经验的人的任何建议。