在C#中定义Os版本
我有一个问题,我找不到在编译时检测Windows版本的方法。
我的目的是创建一个依赖于Interface的可执行文件,它只在特定版本的windows中定义。
因此,为了使我的可执行跨窗口版本,我希望能够为特定的Windows版本定义包含和部分代码。
首先,是否可以在编译时包含特定的Windows版本?
其次,如果没有,为多窗口操作系统版本设计应用程序的最佳方法是什么? 一个可执行文件?
非常感谢你的时间,
你应该真的转过身来。 最好在运行时解决这个问题。 你可以做什么:
- 创建一个定义您要执行的操作的界面;
- 为不同的平台创建单独的实现(在您的示例中,将有一个
Windows10Implementation
类,它调用INetFwRule3
); - 然后,在您的代码中,检查
Environment.OSVersion
并为该特定平台创建实现类。
如有必要,您可以在单独的类库中拆分实现,因此您不必总是加载特定于操作系统的东西,但仅在您需要时。
您是否想要从正在运行的应用程序中触发某些源代码的编译? 我可以想象这是可能的。 在这种情况下,您应该能够在Environment.OSVersion中找到操作系统版本
但更好的方法是:
..包括所有版本的代码,并确定在运行时调用哪些代码..
正如CodeCaster在评论中提出的那样。