2

Visual Studio 2008、サード パーティの dll、xml ファイル、および画像を使用して、c# でフォーム アプリケーションを作成しました。画像がリソースとしてプロジェクトに追加されました。

System.IO.FileNotFoundException別のマシンで公開バージョンの実行可能ファイルを実行しようとすると、Aがスローされます。

.exe ファイルを PC のデスクトップにコピーし、さらに dll と xml ファイルをデスクトップにコピーすると、exe をダブルクリックすると正常に動作します。

私のプロジェクトでは、必要な dll 参照に対して copyLocal を true に設定しています。xml がプロジェクトに追加され、新しい場合は出力ディレクトリにコピーするように設定されます。パブリッシュ アプリケーション ファイルも確認しましたが、すべて揃っています。

xmlファイルをロードするために使用する行はこれです

config = new XmlDocument();
config.Load("fileName.xml");
4

1 に答える 1

0

XML ファイルをロードしようとすると、FileNotFound 例外がスローされていると思いますよね?

「filename.xml」を単純に探すのは、特にこれがアプリケーションの重要な構成ファイルである場合は、私には素晴らしいアイデアとは思えません。

私は通常、これらのものを App.config ファイルに移動してから、完全修飾パスまたは短いパスを使用してロードしようとします。例えば:

App.config

<add key="ExternalConfig" value="D:\\config.xml"/>

.cs ファイル

config = new XmlDocument();
config.Load(ConfigurationManager.AppSettings["ExternalConfig"]);

相対パスを使用することもできますが、常に現在の作業ディレクトリに対して相対的であることに注意してください。

または、構成内のデータの種類に基づいて、この情報を App.config ファイルに保存し、config.xml を完全に削除することもできます。

于 2012-07-23T20:30:23.997 に答える