我在家中的64位Win7机器上使用Visual Studio 2010,在工作时使用的是32位Win7机器。在32位计算机上,在IDE中,此调用适用于调试和发布配置:
openVPNExePath = My.Computer.Registry.GetValue(“HKEY_LOCAL_MACHINE \ SOFTWARE \ OpenVPN”,“exe_path”,“”)
但是,在64位计算机上,调用在调试配置中返回一个有效值,但在发布配置中将openVPNExePath设置为Nothing。
我将目标CPU设置为x86,因为该应用程序引用了32位dll。
这可能与32对64位无关。我应该知道某处的安全设置吗?有人能让我走上正轨吗?
答案 0 :(得分:3)
目标CPU是按配置设置。因此,很容易为Debug配置正确设置它。但是忘记为Release配置再做一次。
请注意,由于您强制使用32位模式,因此您实际上将读取HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ OpenVPN。因此,如果正确,请仔细检查Regedit.exe。如果不是,那么您将不得不使用RegistryKey.OpenBaseKey()来强制64位视图。