我试图从 32 位 .NET 应用程序中确定 64 位计算机上的 SQL Server 实例的安装目录,但由于我的代码访问的常规注册表正在被虚拟化,我试图让注册表正常工作而被抓住了一段时间或Windows操作系统的其他东西。
我想我有一个答案,但我想知道是否有更好的方法。
我试图从 32 位 .NET 应用程序中确定 64 位计算机上的 SQL Server 实例的安装目录,但由于我的代码访问的常规注册表正在被虚拟化,我试图让注册表正常工作而被抓住了一段时间或Windows操作系统的其他东西。
我想我有一个答案,但我想知道是否有更好的方法。
编写一个小的 64 位程序来解决这个问题,并从您的 32 位应用程序中调用 .exe。
我没有完成检查我的第一个答案的正确性,因为有一种更好的方法,即使用此处描述的 WMI: https ://stackoverflow.com/a/5497319/832705
我的解决方案是询问 SQLServer 注册表的安装目录是什么,因为它是一个 64 位应用程序,可以访问常规的 64 位注册表,并且不会卡在 32 位注册表沙箱中。
这可以使用这个家伙的答案来完成: https ://stackoverflow.com/a/533592/832705
真的很棒,谢谢伊恩先生