我有个问题,我找不到在编译时检测windows版本的方法。在C#中为Os版本定义
我的目的是创建一个依赖于Interface的可执行文件,它只在特定版本的Windows中定义。
为了让我的可执行文件跨越Windows版本,我希望能够为特定的Windows版本定义include和部分代码。
首先,编译时是否可以包含特定的windows版本?
其次,如果不是,设计多窗口操作系统版本的应用程序的最佳方式是什么?每个版本有一个可执
非常感谢您的时间,
我有个问题,我找不到在编译时检测windows版本的方法。在C#中为Os版本定义
我的目的是创建一个依赖于Interface的可执行文件,它只在特定版本的Windows中定义。
为了让我的可执行文件跨越Windows版本,我希望能够为特定的Windows版本定义include和部分代码。
首先,编译时是否可以包含特定的windows版本?
其次,如果不是,设计多窗口操作系统版本的应用程序的最佳方式是什么?每个版本有一个可执
非常感谢您的时间,
你应该真的转过身来。运行时最好解决这个问题。你可以做什么:
Windows10Implementation
类,它调用INetFwRule3
);Environment.OSVersion
并为该特定平台创建实现类。如果需要,您可以拆分不同的类库中的实现,因此您不必总是加载操作系统特定的内容,但仅在需要时才加载。
好的,所以我将不得不创建多个.class,具体接口?否则Visual将不能编译:在Windows 7中包含INetFwRule3。因为Environment.OSVersion处于运行时。 – Destrif
是的,您必须制作单独的类库。 –
好吧,但包含Windows 10代码的库仍然无法在Windows 7上编译,因为INetFwRule3在Windows 7中不存在。我仍然不明白如何执行此操作。我有一个类似的问题在这里:http://stackoverflow.com/questions/37454774/visual-studio-compile-error-in-windows-7-when-required-interface-is-defined-only – alexandrudicu
是否要触发正在运行的应用程序的某些源代码的编译?我可以想象这是可能的。在这种情况下,你应该能够在Environment.OSVersion
但更好的方法是找到OS版本:
..包括所有版本的代码,并确定在运行时调用的代码。
由CodeCaster在评论中提出。
也许我们可以解决这个问题:操作系统特定的调用是什么?也许有办法解决它们。 –
为什么你想在编译时确定这个?你不能包含所有版本的代码,并确定在运行时调用哪些代码? – CodeCaster
例如,如果我希望能够使用INetFwRule,那么INetFwRule3仅在Windows 10中定义。我想为每个操作系统在一个应用程序(.exe)中编写我的代码。 – Destrif