2016-12-22 4 views
-1

私はC#のWindowsフォームアプリケーションを公開しようとしているが、私は次のファイルが見つかりませんでしたと言う問題に直面していますが存在しながら、ファイルを見つけることのWinFormアプリケーションはできない発行: ExpiryDate.xml & LastDate.xml彼らは

System.IO.FileNotFoundException:ファイル 'Resources \ LastDate.xml'が見つかりませんでした。 ファイル名: 'リソース\ LastDate.xml'

System.IO.FileNotFoundException:ファイルが見つかりませんでした「C:Shebelアリ\のAppData \ローカル\アプリ\ 2.0 \ E24DY4JB.C3R \ ZPYV9EGG.4TR \ \ \ユーザー\ hsar..tion_8b6b4b078cd8a46c_0001.0001_ab66389ef64fd1d7 \ Resources \ ExpiryDate.xml 'となります。 ファイル名: 'C:Shebelアリ\のAppData \ローカル\アプリ\ 2.0 \ E24DY4JB.C3R \ ZPYV9EGG.4TR \ hsar..tion_8b6b4b078cd8a46c_0001.0001_ab66389ef64fd1d7 \リソース\ ExpiryDate.xml \ \ユーザーの

かの一方で私は公開されたアプリケーションフォルダを調べますが、そこにファイルを見ることができますが、拡張子はLastDate.xml.deployExpiryDate.xml.deployです。

どうすればいいですか?

+0

リソース(.resx)ファイルへの参照としてXMLファイルを追加しましたか?この場合、出力ディレクトリには追加されません。 – Sefe

+0

アプリケーションを「公開」するにはどうすればよいですか?プロダクションビルドを作成する通常の方法は、プロジェクトを「リリース」設定としてビルドし、出力フォルダ(通常は32ビットアプリケーションの場合はbin \ Release'または 'bin \ x86 \ Release')のすべてを取り出します。 _(appname).vshost.exe_ファイル。 – Nyerguds

+0

@Sefeはい私は言及した方法でファイルを追加しました。何らかの理由/解決してください。 –

答えて

0

LastDate.xmlファイルをアプリケーション内の.resxファイルから参照しているようです。この場合、のXMLファイルの内容はビルド時にリソースに変換され、リソースからXMLデータにアクセスできます(例では、リソースファイルがMyXmlResources.resxであり、そのファイル内のリソース名そこ

var lastDate = MyXmlResources.LastDate; 

ディスクからXMLデータをロードする必要がないし、あなたのXMLファイルがターゲットディレクトリになりませんので、あなたも、それを行うべきではありません。LastDate)です。

+0

Sefeに感謝します。私は今あなたの意見を持っていますが、私は 'xml'ファイルのプロパティ" Copy to Output Directory "を" Copy Always "に設定しました。これはファイルをターゲットディレクトリに置くことを許さないでしょうか? –

+0

@AliAlhamaly:そこには_upon build_がありますが、_publish_は別の話になります。とにかく、あなたがあなたのリソースにそれを持っているとき、ファイルをコピーすることに意味はありません。 – Sefe