3つのプロジェクトを含むソリューションがあります。あるプロジェクトから別のプロジェクトにビューをコピーする必要があります。作成したDLLを、ビルド後のイベントを介して次のようにコピーできます。
したがって、プロジェクト1のファイル「/Views/ModuleHome/Index.cshtml」をプロジェクト2のフォルダーにコピーします。ビルド後イベントを介してファイルを目的のプロジェクトにコピーする方法を教えてください。ありがとう
xcopy "$(ProjectDir)Views\Home\Index.cshtml" "$(SolutionDir)MEFMVCPOC\Views\Home"
フォルダー全体をコピーする場合:
xcopy /E /Y "$(ProjectDir)Views" "$(SolutionDir)MEFMVCPOC\Views"
更新:ここに作業バージョンがあります
xcopy "$(ProjectDir)Views\ModuleAHome\Index.cshtml" "$(SolutionDir)MEFMVCPOC\Views\ModuleAHome\" /Y /I
以下は、xcopy
で一般的に使用されるいくつかのスイッチです。
/I - treat as a directory if copying multiple files
/Q - Do not display the files being copied.
/S - Copy subdirectories unless empty.
/E - Copy empty subdirectories.
/Y - Do not Prompt for overwrite of existing files.
/R - Overwrite read only files.
xcopy "your-source-path" "your-destination-path" /D /y /s /r /exclude:path-to-txt- file\ExcludedFilesList.txt
ソースパスと宛先パスの引用符に注意してください。ただし、exludelist txtファイルへのパスには含まれません。
ExcludedFilesList.txtの内容は次のとおりです。cs \
このコマンドを使用して、ソリューション内の1つのプロジェクトから別のプロジェクトにファイルをコピーし、.csファイルを除外しています。
/D Copy only files that are modified in sourcepath
/y Suppresses prompting to confirm you want to overwrite an existing destination file.
/s Copies directories and subdirectories except empty ones.
/r Overwrites read-only files.
xcopy "$(TargetDir)* $(TargetExt)" "$(SolutionDir)\ Scripts\MigrationScripts\Library \"/F/R/Y/I
/ F –完全なソースおよびターゲットファイル名を表示します
/ R –これは読み取り専用ファイルを上書きします
/ Y –既存のファイルを上書きするプロンプトを抑制します
/ I –宛先がディレクトリであると想定します(ただし、末尾はでなければなりません)
ちょっとしたコツ-ターゲットでは、ターゲットがファイルではなくディレクトリであることをxcopyに伝えるために、文字\で終わる必要があります!
私はこのように使用します。
xcopy "$(TargetDir)$(TargetName).dll" "$(SolutionDir)Lib\TIRM\x86\" /F /Y
xcopy "$(TargetDir)$(TargetName).lib" "$(SolutionDir)Lib\TIRM\x86\" /F /Y
/F : Copy source is File
/Y : Overwrite and don't ask me
これの使用に注意してください。 $(TargetDir)にはすでに「\」「D:\ MyProject\bin \」= $(TargetDir)があります
コマンドエディターでマクロを見つけることができます
Batch
ファイルを呼び出します。このファイルは、必要なファイルのソースからデスティネーションに対してXcopy
を実行します
call "$(SolutionDir)scripts\copyifnewer.bat"
前の返信と同様に、xcopy
も提案しています。ただし、/exclude
パラメーターを使用してHallgeir Engenの回答に追加したいと思います。引用符が機能しないため、長いパス名やスペースを含むパス名での動作を妨げるパラメーターのバグがあるようです。パス名は「DOS」形式である必要があり、「Documents」は「DOCUME〜1」に変換されます( this source による)。
したがって、\ excludeパラメーターを使用する場合は、回避策 here があります。
cd $(SolutionDir)
xcopy "source-relative-to-path-above" "destination-relative-to-path-above
/exclude:exclude-file-relative-path
ソースと宛先のパスは引用符で囲むことができます(スペースが含まれている場合)、ただし、not除外ファイルへのパスです。
platform(x64、x86など)およびconfiguration(DebugまたはRelease)を考慮する場合、次のようになります。
xcopy "$(SolutionDir)\$(Platform)\$(Configuration)\$(TargetName).dll" "$(SolutionDir)TestDirectory\bin\$(Platform)\$(Configuration)\" /F /Y
このコマンドは私にとって魅力的です:
for /r "$(SolutionDir)libraries" %%f in (*.dll, *.exe) do @xcopy "%%f" "$(TargetDir)"
Itrecursivelyすべてのdll
およびexe
ファイルをMySolutionPath\libraries
からbin\debug
またはbin\release
にコピーします。
詳細は here で見つけることができます