web-dev-qa-db-ja.com

VS2010プロジェクトにファイルを含める方法、ビルドまたはパブリッシュ時にそれらをコピーして出力ディレクトリをビルドする方法

タスクは、Visual Studio 2010プロジェクトを作成して、ビルド中または発行中にいくつかのfoo.exeユーティリティは、出力(bin)ディレクトリにコピーする必要があります。

早期に.csproj(MSBuildファイル)でPostBuildEventタスクを作成しました:

<PropertyGroup>
  <PostBuildEvent>
    Copy "$(SolutionDir)Tools\foo.exe" "$(ProjectDir)$(OutDir)foo.exe"
  </PostBuildEvent>
</PropertyGroup>

しかし、これは普遍的ではありません。公開中(Visual Studio 2010)foo.exebinディレクトリに表示されますが、出力パブリッシュディレクトリにはコピーされません。たぶん私はすべてを完全に間違っており、プロジェクトにファイルを含める標準的なメカニズムがあり、後でビルドまたは公開中にbinにコピーされますか?

67
Dao

あり、それはビルド後のイベントに依存しません。

ファイルをプロジェクトに追加し、fileプロパティで[出力ディレクトリにコピー]で[常にコピー]または[新しい場合にコピー]を選択します。

[〜#〜] msdn [〜#〜] を参照してください。

101
Oded

ビルド中にファイルをプッシュするだけなので、次のようなビルド後のイベントコマンドラインエントリを追加しました。

Copy /Y "$(SolutionDir)Third Party\SomeLibrary\*" "$(TargetDir)"

これを設定するには、ソリューションエクスプローラーでプロジェクトを右クリックし、[プロパティ]> [ビルドイベント]を選択します。

18
Matthew Piatt

ソリューションエクスプローラーで、出力ディレクトリにコピーするファイルを選択し、2つのプロパティを割り当てます。-ビルドアクション=コンテンツ-出力ディレクトリにコピー=常にコピー

これはトリックを行います。

4
user3110417
  1. ファイルをプロジェクトに追加します。
  2. そのファイルのプロパティに移動します。
  3. 「ビルドアクション」を埋め込みリソースに設定します。
  4. [出力ディレクトリにコピー]を[常にコピー]に設定します。
3
5ervant

service/webプロジェクトに直接から欠落しているDLLへの参照を追加してみてください。別のプロジェクトへの参照を追加しても機能しませんでした。

必要なすべてのdllをコピーしていないため、Webアプリを公開するときにこれを行うだけでした。

0
goku_da_master

私の神経障害のある同志がここで偶然出会うかもしれないので、Webプロジェクトの場合、リンクファイルが外部の.configファイルであり、「出力ディレクトリ」がweb.configと同じディレクトリであると仮定しました。つまり、Webプロジェクトのルート。振り返ってみると、リンクされたファイルをroot/binフォルダーにコピーすることはまったく驚くことではありません。

したがって、appSettingsインクルードファイルの場合、web.configの開始タグは

<appSettings file=".\bin\includedAppSettingsFile.config">

ああ。

0

私の場合、Copy to Output DirectoryからCopy AlwaysとBuildはトリックを行いませんでしたが、Rebuildは行いました。

これが誰かを助けることを願っています!

0
Joel