使用后期生成事件将文件从一个项目复制到另一个项目... VS2010

我有一个解决方案,其中有3个项目。我需要将一个视图从一个项目复制到另一个项目。我能够通过后期构建事件复制创建的 DLL,如下所示:

enter image description here

因此,我想将项目1“/Views/ModuleHome/Index.cshtml”中的文件复制到项目2中的一个文件夹中。 我如何复制文件到我所需的项目通过后期建设事件? 谢谢

241835 次浏览

调用 Batch文件,该文件将运行所需文件的 Xcopy源文件到目标文件

call "$(SolutionDir)scripts\copyifnewer.bat"
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 -将复制多个文件视为目录。
  • /Q -不要显示正在复制的文件。
  • /S -复制子目录,除非为空。
  • /E -复制空子目录。
  • /Y -不要提示覆盖现有文件。
  • /R -覆盖只读文件。
xcopy "your-source-path" "your-destination-path" /D /y /s /r /exclude:path-to-txt- file\ExcludedFilesList.txt

注意源路径和目标路径中的引号,但是在 exludelist txt 文件的路径中没有引号。

Txt 的内容如下: . cs

我使用此命令将文件从解决方案中的一个项目复制到另一个项目并排除.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 MigationScripts Library”/F/R/Y/I

/F-显示完整的源和目标文件名

/R-这将覆盖只读文件

/Y-取消提示覆盖现有文件

/I-假设目标是目录(但必须以)

一个小的 trick-in 目标必须以字符结束,以告诉 xcopy 目标是目录而不是文件!

和前面的回复一样,我也建议使用 xcopy。然而,我想添加到哈尔格尔工程的答案与 /exclude参数。似乎有一个错误与参数阻止它工作的路径名称是长或包含空格,因为引号不会工作。路径名称需要在“ DOS”-格式的“文档”翻译为“ DOCUME ~ 1”(根据 这个来源)。

因此,如果你想使用排除参数,有一个解决方案 给你:

cd $(SolutionDir)
xcopy "source-relative-to-path-above" "destination-relative-to-path-above
/exclude:exclude-file-relative-path

请注意,源路径和目标路径可以(并且应该,如果它们包含空格)在引号中,但是 没有是排除文件的路径。

我是这么用的。

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)

您可以在命令编辑器中找到宏

enter image description here

如果你想考虑到 平台(x64,x86等)和 配置(调试或发布) ,它会是这样的东西:

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)"

它将每个 dllexe文件从 MySolutionPath\libraries复制到 bin\debugbin\release

你可以在 给你中找到更多的信息