我有一個.net窗體應用程序,我目前正在編寫其中有許多我的程序使用的資源。有些圖片,字體文件,腳本(我的程序調用腳本八度)等。如何在.net應用程序中存儲應用程序數據/資源
現在,我有我手動在我的程序的啓動目錄下創建,並通過Application.StartupPath訪問這些不同的文件夾。然而,這導致我必須爲調試版本和發佈版本維護一組單獨的文件,這在過去導致了一些令人討厭的錯誤。我在調試前的幾個月內編輯了一些八度腳本,並忘記將它們複製到發行腳本文件夾。有沒有更好的方法來引用資源?
我有一個.net窗體應用程序,我目前正在編寫其中有許多我的程序使用的資源。有些圖片,字體文件,腳本(我的程序調用腳本八度)等。如何在.net應用程序中存儲應用程序數據/資源
現在,我有我手動在我的程序的啓動目錄下創建,並通過Application.StartupPath訪問這些不同的文件夾。然而,這導致我必須爲調試版本和發佈版本維護一組單獨的文件,這在過去導致了一些令人討厭的錯誤。我在調試前的幾個月內編輯了一些八度腳本,並忘記將它們複製到發行腳本文件夾。有沒有更好的方法來引用資源?
你應該能夠在程序本身存儲資源。
訪問項目的資源部分[Project menu =>「PROJECT NAME」Properties ... => Resources(left side)],並在其中添加文件。
您也可以通過雙擊它們來編輯資源。
在您的代碼中,您應該在My命名空間下使用這些資源(My.Resources。「RESOURCE NAME」)。
資源的(代碼)類型取決於哪種資源的添加它(參見左上角的下拉列表):
這聽起來像是你正在構建一個Windows應用程序,因爲你沒有提到任何使它聽起來像一個Web應用程序。我認爲您應該能夠將資源放入資源目錄中,這些資源目錄將在構建時將資源鏈接到您的應用程序(您不必將資源文件標記爲複製到輸出目錄)作爲.resx的一部分文件。您可以通過打開項目屬性來管理資源。對於具有圖像屬性的控制,你可以簡單地直接從.resx文件中引用的圖像,如果你需要自定義的資源加載到形式,嘗試
this.GetType().Assembly.GetManifestResourceStream("yourresourcename.ext");
你可能有一個路徑來裝點資源名稱,簡單的方法來算出這個是調用
string[] resourcenames = this.GetType().Assembly.GetManifestResourceNames();
你可以得到一個小票友和創建多個.resx文件,經常用於國際化。
我希望我可以選擇兩個答案都是正確的,因爲兩者都包含有用的信息。謝謝! –
請解釋這部分'我有不同的文件夾,我手動創建在我的程序的啓動目錄中,並通過Application.StartupPath'訪問它們。對於調試和發佈都有單獨的文件,我沒有看到任何錯誤。相反,試圖整合調試和發佈文件可能會導致一些令人討厭的錯誤。 – Neolisk
我認爲Neolisk是一個很好的觀點。有時你需要不同版本的資源,但很多時候你不需要單獨的版本。但是,如果不需要單獨的調試版本和發行版本,任何情況下都不會讓您將資源置於通用目錄中。 –