0

Resources フォルダーにいくつかの .txt ファイルを埋め込みました。プロジェクトを実行すると、選択に従って、.txt ファイル名が決定されます。

例えば;

ファイル名は sample017.txt で、textName 文字列変数を保持します。このファイルのフル パスは次のとおりです。

"../../Resources\" + テキスト名;

そして、これらすべてを fileName 文字列変数に割り当てます。

fileName = "../../Resources\\" + textName;

そこで、テキスト ファイルのストリーミングに次の文字列変数を使用します。

using (Stream input = File.OpenRead(fileName))

この形式で、sample017.txt ファイルにアクセスでき、デバッグ モードで正常に動作します。しかし、セットアップ プロジェクトをビルドして任意の PC にインストールすると、例外が発生し、「リソース」が見つかりません。フォルダ。.exe ファイル フォルダー内のリソースを使用して同じものを管理するにはどうすればよいですか?

注:ファイルをプログラム フォルダーにコピーしたくありません。これらのソースを埋め込みたい。

4

1 に答える 1

1

パスから ../.. を削除してみてください。リソースのデプロイ後は、ローカルでデバッグ中とは異なるためです。

このスレッドもチェックしてください:

デプロイされたアプリケーションがそのリソースを見つけられない c# Visual Studio 2010

ファイルをリソースとして埋め込み、Assembly.GetExecutingAssembly を使用して読み込むこともできます。GetManifestResourseStream を使用してコンテンツを取得します。

ここにあるリソースへのアクセスの詳細: http://support.microsoft.com/kb/319292

ここに切り取られた..

var assembly = Assembly.GetExecutingAssembly();
var res = assembly.GetManifestResourceStream("MyNameSpace.TextFile.txt");
var textStreamReader = new StreamReader(res);

よろしく

于 2013-07-22T10:16:41.153 に答える