2016-12-22 30 views
-1

我想發表我的C#Windows窗體應用程序,但我面對的是說,下列文件找不到的問題來查找文件: ExpiryDate.xml & LastDate.xml發佈WinForm應用程序無法同時它們的存在

System.IO.FileNotFoundException:找不到文件'Resources \ LastDate.xml'。 文件名: '資源\ LastDate.xml'

System.IO.FileNotFoundException:未能找到文件「C:\用戶\ Shebel阿里\應用程序數據\本地\ APPS \ 2.0 \ E24DY4JB.C3R \ ZPYV9EGG.4TR \ hsar..tion_8b6b4b078cd8a46c_0001.0001_ab66389ef64fd1d7 \資源\ ExpiryDate.xml」。 文件名: 'C:\用戶\ Shebel阿里\應用程序數據\本地\ APPS \ 2.0 \ E24DY4JB.C3R \ ZPYV9EGG.4TR \ hsar..tion_8b6b4b078cd8a46c_0001.0001_ab66389ef64fd1d7 \資源\ ExpiryDate.xml'

而如果我探索發佈的應用程序文件夾,我可以看到那裏的文件,但擴展名爲LastDate.xml.deployExpiryDate.xml.deploy

有什麼想法嗎?

+0

您是否將XML文件添加爲資源(.resx)文件的引用?在這種情況下,它不會被添加到輸出目錄。 – Sefe

+0

你如何「發佈」應用程序?創建生產版本的常規方法是將項目構建爲「Release」配置,然後將所有內容都放在輸出文件夾中(通常爲'bin \ Release',或對於32位應用程序爲'bin \ x86 \ Release'),但_(appname).vshost.exe_文件。 – Nyerguds

+0

@Sefe是的我已經按照你提到的方式添加了這些文件,請提供任何理由/解決方案嗎? –

回答

0

看起來好像你已經在你的應用程序中引用了你的LastDate.xml文件.resx文件。在這種情況下,您的XML文件的內容在構建過程中變爲資源,您可以從資源訪問XML數據(假設您的示例中資源文件爲MyXmlResources.resx,並且該文件中的資源名稱是LastDate):

var lastDate = MyXmlResources.LastDate; 

沒有必要從光盤加載XML數據,你也應該這樣做,因爲你的XML文件,將不會對目標目錄。

+0

謝謝Sefe,我現在明白了你的觀點,但我仍然懷疑你最後說了些什麼,如果我將'xml'文件的屬性「複製到輸出目錄」設置爲「始終複製」,這將不允許將文件放入目標目錄中! –

+0

@AliAlhamaly:它會在那裏建立,但是_publish_可以是一個不同的故事。無論如何,當你在資源中擁有文件時,複製文件沒有意義。 – Sefe

相關問題