6
我通過IsolatedStorageFile.GetMachineStoreForAssembly()方法使用隔離存儲來存儲我的應用程序設置。代碼簽名中斷隔離存儲
在我的應用程序已經部署之後,我購買了一個數字證書來簽署我的軟件。但是,帶證書的新版本無法讀取舊的設置文件。這是因爲簽名改變了應用程序的身份。
如何訪問從舊版本(未簽名)寫入的舊設置?是否有可能通過傳遞舊標識來獲得舊程序集的機器商店?
我通過IsolatedStorageFile.GetMachineStoreForAssembly()方法使用隔離存儲來存儲我的應用程序設置。代碼簽名中斷隔離存儲
在我的應用程序已經部署之後,我購買了一個數字證書來簽署我的軟件。但是,帶證書的新版本無法讀取舊的設置文件。這是因爲簽名改變了應用程序的身份。
如何訪問從舊版本(未簽名)寫入的舊設置?是否有可能通過傳遞舊標識來獲得舊程序集的機器商店?
機器商店被應用程序標識標識,而不僅僅是名稱。
您的publicKeyToken在您簽署代碼後會有所不同。
參考文獻:
http://msdn.microsoft.com/en-US/library/system.io.isolatedstorage.isolatedstoragefile.getmachinestoreforassembly(v=vs.80).aspx http://msdn.microsoft.com/en-us/library/b0yt6ck0.aspx
Environment.GetFolderPath(ApplicationData)
下爲我的應用程序創建一個文件夾,並將文件存儲在那裏。話雖這麼說,我發現this文章有時可以用來定位文件夾,如果你知道文件的名稱。
這似乎沒有提供任何尚未出現在問題中的信息,也沒有回答「我如何訪問舊設置?」這個問題。它可能*作爲評論很好,但是-1作爲答案。 –
本,他編輯了答案,現在它確實回答了這個問題。 鏈接文章的解決方案是,如果您知道文件的名稱(我確實),則可以獲取當前程序集的獨立存儲的位置。從這裏,您可以猜出所有程序集的隔離存儲必須位於何處,並使用正確的名稱查找該文件。 這聽起來像一個黑客,但我想它會在大多數情況下工作。但是,也許有人知道更好的解決方案? – LTR