相关疑难解决方法(0)

如何在运行时检查操作系统版本,例如Windows或Linux,而不使用条件编译语句

有谁知道如何确定你的c#代码运行的平台,例如它是在linux或windows上运行,以便我可以在运行时执行不同的代码.

我有一个ac#windows应用程序,我想构建目标Windows和Linux平台.

到目前为止,我创建了两个指向同一组源代码文件的项目文件.然后,我使用条件编译语句之一称为LINUX的项目.

在实际代码中存在差异的情况下,我使用条件编译语句使用编码语句,例如

#if (LINUX)
 ' do something
#endif
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?我真的不想拥有2个项目文件.

提前致谢.

c# windows visual-studio-2008 winforms

39
推荐指数
5
解决办法
4万
查看次数

如何检测我的应用程序是否在Windows 10上运行

我正在寻找一种方法来检测我的C#应用​​程序是否在Windows 10上运行.

我曾希望Environment.OSVersion会做的伎俩,但这似乎返回Version6.3.9600.0在Windows 8.1和Windows 10.

如其他解决方案,似乎并没有的Windows 8和Windows 10之间进行区分两种.

有什么建议?


为什么我需要这样做?

因为我使用WinForms WebBrowser控件来托管OAuth页面,该页面在旧的IE版本中崩溃并烧毁(我的应用程序连接到用户的Nest帐户 ......).

默认情况下,WebBrowser控件模拟IE7.使用注册表项,您可以告诉它模拟主机PC上安装的最新版本的IE.然而,该工作值高达8.1的Windows(和Windows 10的预发行版)无法在Windows 10的最终版本.

c# windows-10

39
推荐指数
4
解决办法
2万
查看次数

使用Environment.OSVersion确定操作系统

使用System.Environment.OSVersion命名空间 确定托管ASP.NET应用程序的Microsoft OS的最佳方法是什么

我需要一个Windows XP,Windows Server 2003和Windows Vista的示例

这是我试图使用伪代码完成的

switch(/* Condition for determining OS */)
{
    case "WindowsXP":
        //Do Windows XP stuff
        break;
    case "Windows Server 2003":
        //Do Windows Server 2003 stuff
        break;
    case "Windows Vista":
        //Do Windows Vista stuff
        break;
}
Run Code Online (Sandbox Code Playgroud)

c# windows asp.net

18
推荐指数
2
解决办法
2万
查看次数

确定程序是否在Windows Server上运行

我想确定我的程序是否在Windows Server的某个版本上运行.显然,System.Environment不包含有关Windows是服务器版本的事实的信息(OS版本对象中没有此类信息).

我知道我可以SystemInformation.TerminalServerSession用来检查我的程序是否在远程桌面上运行(另请参阅此问题),但如果用户只是远程访问普通客户端Windows机器,情况也是如此.

那么是否有一种支持的方法来确定代码是在服务器上还是在客户端计算机上运行?如果需要,我不介意使用P/Invoke.

注意:我不想"Server"在产品名称中搜索字符串,因为由于本地化,这可能不适用于某些系统.

c# windows-server

12
推荐指数
2
解决办法
8344
查看次数

如何以编程方式告诉XP 64位和Server 2003 64位之间的区别

我有一个程序,我需要根据用户运行的Windows版本显示不同的下载链接.

使用此答案,我能够检测操作系统的版本.同样使用这个答案,我可以检测到我是在32位还是64位版本的OS上运行.

这完全符合我的需要,但是我遇到了这个页面,它说明了两者Windows XP 64-Bit EditionWindows Server 2003使用了版本号5.2.

如何检测这两个操作系统之间的差异?


作为旁注,我确实需要将它们发送到不同的位置,如果它们是2003 64位或XP 64位,这里是我需要发送给人们的链接:

.net c# windows .net-2.0

3
推荐指数
1
解决办法
989
查看次数