コンテンツのフォルダーを含むdllを参照するコンソールアプリがあります。アプリをビルドすると、コンテンツを含むbin/debugのフォルダーが正しく表示されます。同じアプリを公開しようとすると、そのフォルダーが見つかりません。
フォルダーをアプリに直接追加し、コンテンツファイルをリンクとして追加することで回避できますが、dllコンテンツフォルダーに追加された新しいファイルを取得しないため、これは非常に脆弱です。
ビルドからサブフォルダーを含めるようにpublishに指示する方法はありますか?
コンテンツのフォルダーを含むdllを参照するコンソールアプリがあります。アプリをビルドすると、コンテンツを含むbin/debugのフォルダーが正しく表示されます。同じアプリを公開しようとすると、そのフォルダーが見つかりません。
フォルダーをアプリに直接追加し、コンテンツファイルをリンクとして追加することで回避できますが、dllコンテンツフォルダーに追加された新しいファイルを取得しないため、これは非常に脆弱です。
ビルドからサブフォルダーを含めるようにpublishに指示する方法はありますか?
あなたの質問は、さらにいくつかの質問を提起します。しかし、それはコンソール アプリであるということとは関係なく、どの「アプリ」にも当てはまる可能性があると思います。もしそうなら ...
あなたの問題は、実行時にフォルダーを参照することにあると思います。あなたが思っているフォルダからアプリが実行されていない可能性があります。
したがって、2つのアプローチ:
「Environment.SpecialFolder」をグーグルで検索します。後者のバージョンの Windows ユーザーが編集可能なファイルは、'CommonApplicationData' などの特定のフォルダーにのみ配置する必要があります。これはあなたのアプリケーションに合うかもしれませんし、良い共通領域を提供するだけかもしれません。
ユーザーが編集可能なフォルダをプログラム ファイル領域に配置しようとすると、Windows が「意地悪」になる可能性があります。開発環境ではなく、デプロイされた環境について考えてください。
通常、インストーラはこれらの特別なフォルダをサポートしています。