我们有一个依赖于 .NET 框架的应用程序,并在启动时执行检查以查看框架是否已安装。在我们的客户端计算机上,这可以正常工作,但在运行 Windows Server 2k3 的服务器上,检查失败。当我们查看环境变量时,它正确显示 Windows 目录是 C:\Windows,我们可以看到 .NET 已正确安装在那里,但 Windows API 调用 (获取Windows目录) 从我们的应用程序返回 C:\Programs and Settings\[用户名]\Windows,这是无效的,甚至不存在。Server 2k3 是否有问题会导致这种错误报告,还是我需要在其他地方查找?谢谢。
答案1
最好从 SystemRoot 环境变量读取,而不是使用 Windows API 调用。尝试一下,string WindowsDir = System.Environment.GetEnvironmentVariable ("SystemRoot");
看看效果如何。
如果您从本机代码调用,char *WindowsDir = getenv ("SystemRoot");
这就是您想要的。