2013-12-17 46 views
3

從Windows Phone Marketplace下載應用程序時,如果嘗試訪問應用程序的「Stl」文件夾中的「.stl」文件時出現非常奇怪的錯誤。它不會在調試或發佈模式下從Visual Studio 2012 Express啓動時出現此行爲。一旦我嘗試加載文件,它會給我一個「System.UnauthorizedAccessException訪問路徑'C:\ Data \ Programs \ APPUID \ Install \ Stl \ test.stl'is denied」exception while access a「.g code」文件與「GCode」幾乎完全一樣的方式導致沒有任何錯誤。Windows Phone 8在打開文件時發生UnauthorizedAccessException

我不知道什麼可能導致此或如何調試,因爲我不知道我是否可以以某種方式將調試器附加到商店下載的應用程序的實例。

我也不知道在從商店和Visual Studio部署完全相同的應用程序之間可能會有什麼不同。如果在沒有連接調試器的情況下從手機啓動應用程序,Visual Studio安裝的應用程序也不會帶來任何麻煩。

任何想法?

PS。文件正在被文件流打開,然後由binarreader使用。我不知道如果真的需要的源代碼,並針對一部分,但重要的行只是:

FileStream fileStream = new FileStream(filePath, FileMode.Open); 

其中,「文件路徑」,在這種情況下是「Stl的\ test.stl」。

+1

嘗試在管理模式下運行vs或將訪問權限分配給您提到的文件夾。 –

+0

@akbarali對不起,你能詳細說明你想要我做什麼,因爲我很難理解。 – Gerharddc

+0

您提到的路徑,轉到該文件夾​​,打開屬性,然後在安全選項卡分配完全控制,單擊應用,然後運行應用程序。 –

回答

1

好吧我想通了。 「安裝」目錄實際上是受限制的訪問,但由於某些原因,Visual Studio簽名過程會以足夠的權限訪問該文件夾。確定相對目錄的正確過程不是使用「Directory.GetCurrentDirectory()」,而是使用「ApplicationData.Current.LocalFolder」。希望這可以幫助!

1

沒有看到您的實際代碼,很難說出什麼問題。所以,而不是試圖讀你的想法,我會提供一個替代解決方案。

我已經與Windows Phone上的Isolated Storage進行了廣泛的合作,並且我已經學會了這一點。

世界上沒有庫,沒有API,沒有SDK,沒有Web服務,比windows phone上的隔離存儲具有更差的錯誤報告。

一切都是無效訪問或未經授權訪問ZERO進一步的信息。

爲了彌補這一點,我創建了一個將對象序列化爲獨立存儲的DLL。

您所要做的就是將[DataContractAttribute]放在您的班級名稱上方,並將[DataMemeber]放在您想要保存的任何變量上方。然後,您只需將您的對象和唯一名稱傳入savefile方法即可。而已!立即保存

你可以找到我的免費DLL EZ_Iso.dll爲download here。使用示例代碼和說明

該代碼是開源的,所以如果你希望你也可以反編譯dll,看看它是如何工作的。

如果您有任何問題或增強功能,歡迎隨時與我聯繫或在Twitter上與我聯繫。

+1

我同意錯誤處理,通常這是一個線程問題(兩條線程接觸同一個文件),當我得到這個錯誤 –

+0

嗨安東尼 - 鏈接壞了 - 你可以修復它,如果你仍然有文件?謝謝 – user3141326

+0

@ user3141326嘿,謝謝你看看它。我最近重建了我的服務器,以便這些資產不再存在。我很樂意在本週重新發布它,但是,這是兩年前寫的。我不確定它是否能夠繼續工作。 –

相關問題