タスクは、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.exe
はbin
ディレクトリに表示されますが、出力パブリッシュディレクトリにはコピーされません。たぶん私はすべてを完全に間違っており、プロジェクトにファイルを含める標準的なメカニズムがあり、後でビルドまたは公開中にbin
にコピーされますか?
あり、それはビルド後のイベントに依存しません。
ファイルをプロジェクトに追加し、fileプロパティで[出力ディレクトリにコピー]で[常にコピー]または[新しい場合にコピー]を選択します。
[〜#〜] msdn [〜#〜] を参照してください。
ビルド中にファイルをプッシュするだけなので、次のようなビルド後のイベントコマンドラインエントリを追加しました。
Copy /Y "$(SolutionDir)Third Party\SomeLibrary\*" "$(TargetDir)"
これを設定するには、ソリューションエクスプローラーでプロジェクトを右クリックし、[プロパティ]> [ビルドイベント]を選択します。
ソリューションエクスプローラーで、出力ディレクトリにコピーするファイルを選択し、2つのプロパティを割り当てます。-ビルドアクション=コンテンツ-出力ディレクトリにコピー=常にコピー
これはトリックを行います。
service/webプロジェクトに直接から欠落しているDLLへの参照を追加してみてください。別のプロジェクトへの参照を追加しても機能しませんでした。
必要なすべてのdllをコピーしていないため、Webアプリを公開するときにこれを行うだけでした。
私の神経障害のある同志がここで偶然出会うかもしれないので、Webプロジェクトの場合、リンクファイルが外部の.configファイルであり、「出力ディレクトリ」がweb.configと同じディレクトリであると仮定しました。つまり、Webプロジェクトのルート。振り返ってみると、リンクされたファイルをroot/binフォルダーにコピーすることはまったく驚くことではありません。
したがって、appSettingsインクルードファイルの場合、web.configの開始タグは
<appSettings file=".\bin\includedAppSettingsFile.config">
ああ。
私の場合、Copy to Output Directory
からCopy Always
とBuildはトリックを行いませんでしたが、Rebuildは行いました。
これが誰かを助けることを願っています!