0

コンテンツのフォルダーを含むdllを参照するコンソールアプリがあります。アプリをビルドすると、コンテンツを含むbin/debugのフォルダーが正しく表示されます。同じアプリを公開しようとすると、そのフォルダーが見つかりません。

フォルダーをアプリに直接追加し、コンテンツファイルをリンクとして追加することで回避できますが、dllコンテンツフォルダーに追加された新しいファイルを取得しないため、これは非常に脆弱です。

ビルドからサブフォルダーを含めるようにpublishに指示する方法はありますか?

4

1 に答える 1

0

あなたの質問は、さらにいくつかの質問を提起します。しかし、それはコンソール アプリであるということとは関係なく、どの「アプリ」にも当てはまる可能性があると思います。もしそうなら ...

あなたの問題は、実行時にフォルダーを参照することにあると思います。あなたが思っているフォルダからアプリが実行されていない可能性があります。

したがって、2つのアプローチ:

  • 実行時に絶対パスを解決してみてください(私には気分が悪いです)
  • Windows を使用して、ファイルの「標準」領域を使用します。

「Environment.SpecialFolder」をグーグルで検索します。後者のバージョンの Windows ユーザーが編集可能なファイルは、'CommonApplicationData' などの特定のフォルダーにのみ配置する必要があります。これはあなたのアプリケーションに合うかもしれませんし、良い共通領域を提供するだけかもしれません。

ユーザーが編集可能なフォルダをプログラム ファイル領域に配置しようとすると、Windows が「意地悪」になる可能性があります。開発環境ではなく、デプロイされた環境について考えてください。

通常、インストーラはこれらの特別なフォルダをサポートしています。

于 2012-10-01T10:59:00.927 に答える