從32位應(yīng)用程序讀取64位注冊(cè)表我有為AnyCPU編譯的ac#單元測(cè)試項(xiàng)目。我們的構(gòu)建服務(wù)器是64位機(jī)器,并安裝了64位SQL Express實(shí)例。測(cè)試項(xiàng)目使用類似于以下內(nèi)容的代碼來(lái)標(biāo)識(shí).MDF文件的路徑: private string GetExpressPath()
{
RegistryKey sqlServerKey = Registry.LocalMachine.OpenSubKey( @"SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" );
string sqlExpressKeyName = (string) sqlServerKey.GetValue( "SQLEXPRESS" );
RegistryKey sqlInstanceSetupKey = sqlServerKey.OpenSubKey( sqlExpressKeyName + @"\Setup" );
return sqlInstanceSetupKey.GetValue( "SQLDataRoot" ).ToString();
}這段代碼在我們的32位工作站上工作正常,并且在我最近使用NCover啟用代碼覆蓋率分析之前,在構(gòu)建服務(wù)器上工作正常。因?yàn)镹Cover使用32位COM組件,所以測(cè)試運(yùn)行器(Gallio)作為32位進(jìn)程運(yùn)行。檢查注冊(cè)表,下面沒有“實(shí)例名稱”鍵HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Microsoft SQL Server在32位模式下運(yùn)行的應(yīng)用程序是否有辦法訪問(wèn)Wow6432Node外部的注冊(cè)表?
從32位應(yīng)用程序讀取64位注冊(cè)表
喵喵時(shí)光機(jī)
2019-08-17 15:52:51