2013-06-23 84 views
6

我通過IsolatedStorageFile.GetMachineStoreForAssembly()方法使用隔離存儲來存儲我的應用程序設置。代碼簽名中斷隔離存儲

在我的應用程序已經部署之後,我購買了一個數字證書來簽署我的軟件。但是,帶證書的新版本無法讀取舊的設置文件。這是因爲簽名改變了應用程序的身份。

如何訪問從舊版本(未簽名)寫入的舊設置?是否有可能通過傳遞舊標識來獲得舊程序集的機器商店?

回答

0

機器商店被應用程序標識標識,而不僅僅是名稱
您的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

  • 編輯 -
    這是獨立存儲的下側之一。我不使用它進行永久設置,如果有必要,不能重新輸入。對於長期存儲,我在ApplicationData文件夾 Environment.GetFolderPath(ApplicationData)下爲我的應用程序創建一個文件夾,並將文件存儲在那裏。

話雖這麼說,我發現this文章有時可以用來定位文件夾,如果你知道文件的名稱

+0

這似乎沒有提供任何尚未出現在問題中的信息,也沒有回答「我如何訪問舊設置?」這個問題。它可能*作爲評論很好,但是-1作爲答案。 –

+0

本,他編輯了答案,現在它確實回答了這個問題。 鏈接文章的解決方案是,如果您知道文件的名稱(我確實),則可以獲取當前程序集的獨立存儲的位置。從這裏,您可以猜出所有程序集的隔離存儲必須位於何處,並使用正確的名稱查找該文件。 這聽起來像一個黑客,但我想它會在大多數情況下工作。但是,也許有人知道更好的解決方案? – LTR