web-dev-qa-db-ja.com

ビルド前のイベント:XCopyを使用してフォルダーとそのサブフォルダーとファイルをビルドディレクトリにコピー

私はウィンドウアプリケーションを使用していますが、いくつかのプラグインとそのアプリケーションのフォルダー構造に配置したChildPluginsがあります(フォルダー構造の画像を参照)。ソースコントロールとしてSVNを使用したので、すべてのフォルダーに.SVNフォルダーがあります。

これが私の質問です:

下の画像は、プラグインのディレクトリ構造です。すべてのフォルダには、プラグインに関連するいくつかのファイルがあります。次に、Pre Built Eventを使用して、すべてのフォルダー(およびサブフォルダー)とそのファイルをアプリケーションビルドの出力パスにコピーします。

**Plugins Directory structure**

ネットで検索したところ、XCopyを使用することで、自分がやりたいことを達成できることがわかりました。以下のコードを使用すると、プラグインディレクトリとそのファイルをコピーできますが、サブフォルダとサブフォルダファイルをコピーできません。

xcopy "$(SolutionDir)Plugins\*.*" "$(SolutionDir)Windows\Host\Host.GUI\bin\x86\$(ConfigurationName)\Plugins\" /Y/D

フォルダーをコピーします。すべてのファイルを含むすべてのサブフォルダーであり、.SVNを除外します。誰かが私を指摘することはできますか?

ありがとう。

22
Jignesh Thakker

サブディレクトリ(空のものも含む)をコピーするには、/ Eスイッチを追加する必要があります。

23
CrazyCasta

私はこれを使用しました:

xcopy "$(ProjectDir)MyFolder\*.*" "$(SolutionDir)ConsoleApplication1\bin\Release\MyFolder" /Y /I /E

すべてのドキュメントを含むプロジェクトをコンパイルすると、フォルダー 'MyFolder'が 'Release'フォルダーに表示されます。

ここで指摘すべきことは、$(SolutionDir)の後のパスがソリューションの名前に応じて変化することです。私のソリューションはConsoleApplication1です。

27
Mario Berthely

ソリューション名または構成タイプのパスを必要としない場合は、次のようにします。

xcopy "$(ProjectDir)MyFolder\*.*" "$(TargetDir)\MyFolder" /Y /I /E
14
Adam Finley

Assetsフォルダー(プロジェクトフォルダーにあります)をbin(debugまたはrelease ...)\ Assetsにコピーする例を次に示します。

<Target Name="BeforeBuild">
    <Exec Command="xcopy &quot;$(ProjectDir)Assets\*.*&quot; &quot;$(ProjectDir)bin\$(Configuration)\Assets&quot; /Y /I /E" />
</Target>

二重引用符は特別な単語に置き換えられます

1
Artiom