コンソール、ライブラリ、およびサービス プロジェクトをセットアップしました。Library プロジェクトは、ファイルをフォルダーにロードし、テキストを変数に格納します。
コンソール プロジェクトは、これらの変数を操作します。コンソール プロジェクトを正常に実行でき、問題なくファイルをロードできます。ファイルは DLL で常にコピーするように設定され、ビルド アクションのコンテンツとして指定されます。
サービスでまったく同じコードを実行しようとすると。
File.ReadAllText(@"MyFolder\SomeFile.txt");
次の例外をスローします。
The type initializer for 'MyLibrary.Data.ReadFiles' threw an exception.
Setup Project タイプを使用してインストーラーを作成しています。サービスがインストールされた後、フォルダMyFolder
はファイルと同様にサービスのアプリケーション フォルダに存在します。サービスがこれらのファイルを読み取れないという問題の原因は、他に何が考えられますか?
編集1
public class ReadFiles {
public static string DataFile = File.ReadAllText(@"MyFolder\SomeFile.txt");
}