在C#中定义Os版本

时间:2016-06-01 08:38:19

标签: c#

我遇到了问题,我无法在编译时找到检测Windows版本的方法。

我的目的是创建一个依赖于Interface的可执行文件,它只在特定版本的windows中定义。

因此,为了使我的可执行程序跨窗口版本,我希望能够为特定的Windows版本定义包含和部分代码。

首先,是否可以在编译时包含特定的Windows版本?

其次,如果没有,为多窗口操作系统版本设计应用程序的最佳方法是什么?每个版本一个可执行文件?

非常感谢你的时间,

2 个答案:

答案 0 :(得分:2)

你应该真的转过身来。最好在运行时解决这个问题。你能做什么:

  • 创建一个定义您要执行的操作的界面;
  • 为不同的平台创建单独的实现(在您的示例中,将有一个Windows10Implementation类,它调用INetFwRule3);
  • 然后,在您的代码中,检查Environment.OSVersion并为该特定平台创建实现类。

如果有必要,您可以在单独的类库中拆分实现,因此您不必总是加载特定于操作系统的东西,但只在您需要时才这样做。

答案 1 :(得分:0)

您是否想要从正在运行的应用程序中触发某些源代码的编译?我可以想象这是可能的。在这种情况下,您应该能够在 Environment.OSVersion

中找到操作系统版本

但更好的方法是:

  

..包含所有版本的代码,并确定在运行时调用哪些代码..

由CodeCaster在评论中提出。