C# VS 2008 构建配置——对不同的构建使用不同的类

标签 c# visual-studio-2008 build-process

我正在编写一个应用程序,它有两个类,它们提供基本相同的功能,但适用于不同的情况。我想要该软件的三个版本 - 一个用户可以更改 ini 文件以将程序配置为使用两个类之一的版本,然后是一个仅使用两个类之一的版本。

现在我通过 ini 文件让它工作,但我希望能够构建完全不包含不需要类的代码的版本。

解决此问题的最佳方法是什么?我目前的想法是,因为这两个类都派生自一个公共(public)接口(interface),所以我将只添加一个编译时条件,它查看事件构建配置并决定是否编译该类。这样做的语法是什么?

在此先感谢您的帮助和意见!

最佳答案

您可以使用条件编译符号,这类似于您在 C/C++ 中使用预编译器指令所做的事情。

例如:

interface IThing {
}

#if PLATFORM_A

class ThingImplementation : IThing {
}

#endif

#if PLATFORM_B

class ThingImplementation : IThing {
}

#endif

您可以通过将条件编译符号添加到项目设置中的“构建”选项卡来选择设计器实现。

对于非常基本的实现,实际上您根本不需要接口(interface),只需根据您正在编译的平台删除不需要的代码(即使接口(interface)对于强制一致性很有用)。

class Thing {

#if PLATFORM_A

    Platform specific code

#endif

#if PLATFORM_B

    Platform specific code

#endif

}

关于C# VS 2008 构建配置——对不同的构建使用不同的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3008512/

相关文章:

.net - 在 Visual Studio 中关闭 WCF 服务主机

objective-c - "Clean and Build"到底是做什么的?

c# - UWP BarcodeScanner 预览版 : CaptureElement doesn't show any Preview

visual-studio - VS 2008中的垂直线限制器?

c# - .NET 单元测试可以使用哪种动态语言?

.net - 如何获得解决方案的依赖链和成员 Hook 的可视化表示?

c# - 成功的 Visual Studio C# 构建不会创建程序集

visual-studio - 何时以及如何将 ILMerge 与 Visual Studio 项目/解决方案一起使用

c# - 如何将这个基于代码的 WPF 工具提示转换为 Silverlight?

c# - 检测路径是否指向 NTFS 分区