このFile
クラスはファイル システムにアクセスするためにのみ使用されますが、ファイルはシステムに存在しなくなったため、この行を変更する必要があります。他の人がリンクされた回答でほのめかしているように、リソースのストリームを取得してからそれを読む必要があります。以下のメソッドを呼び出して、メソッド呼び出しを置き換えることができますFile.ReadAllText
。
private static string GetTextResourceFile(string resourceName)
{
var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName);
using (var sr = new StreamReader(stream))
{
return sr.ReadToEnd();
}
}
resourceName は、 のようなものになりますMyNamespace.Myfile.txt
。リソース名を見つけるのに問題がある場合はGetManifestResourceNames
、アセンブリのメソッドがデバッグ中にそれを特定するのに役立ちます。
また、リソースが見つからない場合、上記のメソッドは例外をスローすることにも注意してください。これは実際のコードで処理する必要がありますが、上記のサンプルを標準のエラー処理コードと混同したくありませんでした。
同じ回答を持つ別の質問については、埋め込みリソース テキスト ファイルの読み取り方法も参照してください(これは、ストリームについてのみ質問するという点で異なりますが、実際にはストリームが埋め込みリソース ファイルにアクセスする唯一の方法のようです)。