AC# 実行可能ファイルは、開発からエンド ユーザーへの配布に移行するライフ サイクル中に、次の 3 つの異なる場所に配置できます。
- {プロジェクトディレクトリ}\bin\Debug
- {プロジェクトディレクトリ}\bin\Release
- {エンド ユーザー インストール ディレクトリ}
私のアプリには、実行可能ファイルを含むディレクトリのすぐ下にある\videoというサブディレクトリに配置する Web ページといくつかの補助ファイルがあります。私が本当にやりたくないのは、上記の 3 つのディレクトリ間でサブディレクトリをコピーすることです。言い換えれば、明らかに私は次のような結果にはなりたくありません:
- {プロジェクト ディレクトリ}\bin\Debug\video
- {プロジェクト ディレクトリ}\bin\Release\video
- {エンド ユーザー インストール ディレクトリ}\video
\video内のファイルが変更されるたびに固有の再コピーを使用します。
アプリケーションと共に配布されるデータ ファイルを、アプリケーションの配布時にセットアップ プログラムに追加される一元化されたディレクトリに保持するための便利な全体的な戦略は何ですか? Visual Studio 2012 IDE でアプリケーションを実行するたびに、データ ファイルを\Debugおよび\Releaseサブディレクトリにコピーするためのビルドタスクを追加する必要がないことを願っています。ビルドタスク中にファイルをコピーするのを忘れるとエラーが発生する可能性があり、大量のファイル、特に大きなファイルがある場合は混乱を招く可能性があります。
3 つの異なるランタイム コンテキストのそれぞれを便利に検出するトップ レベルのデータ パスを構築する方法はありますか? 相対パスが別のメソッドに渡されるときに、データ パスを正規化するメソッドですべての相対データ パスをラップする必要があるかどうかは気にしません。これは、 openFile()という名前のサンプル メソッドに渡す前に相対パスを適切に展開するfixRelPath()という名前の架空のメソッドを使用した例です。
openFile(fixRelPath(".\\video\\temp.html"));