【问题标题】:Visual studio 2015 post build commnad failing with exit code 1. strange thing is it fails only on some projectsVisual Studio 2015 post build 命令失败,退出代码为 1。奇怪的是它只在某些项目上失败
【发布时间】:2018-05-21 12:56:23
【问题描述】:

我正在尝试在我的一些项目中关注构建后事件

copy /Y "$(TargetDir)*.dll" "$(SolutionDir)MyMainApp\bin\*.dll"

但出现错误

错误 The command "copy /Y "D:\myslolution\myimplementation\bin\Release*.dll" "D:\myslolution\MyMainApp\bin*.dll"" exited with code 1.

知道其中有什么问题吗? 奇怪的是多次重建它有时会工作

【问题讨论】:

  • 你的目标目录有dll吗?如果不是:这就是您出错的原因。
  • 是的,有。我应该先删除它吗?
  • 目标目录 $(SolutionDir)MyMainApp\bin\ 是否存在?而且您不必将 *dll 添加到目标文件夹。
  • Sinatr 如果你知道什么,请回答。现在越来越多的努力是寻找重复而不是在stackoverflow上回答

标签: .net visual-studio dll msbuild post-build-event


【解决方案1】:

我认为复制命令的语法应该是: 复制 /Y D:\myslolution\myimplementation\bin\Release\ *.dll D:\myslolution\MyMainApp\bin\

(source 参数后有\*.dll,否则以Release 开头,.dll 结尾的文件为目标)

您可以先在 cmd 窗口中尝试该命令以验证语法,然后再将其添加到后期构建中。

验证复制命令语法后,您可以将其更改为:

复制 /Y "$(TargetDir)\*.dll" "$(SolutionDir)\MyMainApp\bin\"

【讨论】:

  • 没有。我无法硬编码文件路径。它与项目相关
  • 我并不是说您应该硬编码路径,(仅用于测试复制命令的语法是否正确)。在您的情况下: copy /Y "$(TargetDir)*.dll" "$(SolutionDir)MyMainApp\bin\"
  • 尝试复制 /Y "$(TargetDir)*.dll" "$(SolutionDir)MyMainApp\bin\" 但结果相同
  • @KamranShahid 你又错过了 $(TargetDir) 之后的反斜杠。仔细查看您的错误消息和此答案。 “Release*dll”不是文件夹。
【解决方案2】:

请检查你身边的两个项目文件夹。

例如,根据您的描述,我有两个项目,我在 myimplementation 属性中设置了构建后事件命令行:

如果我构建项目,我会得到这个 dll 文件:

奇怪的是多次重建它有时可以工作

如果是这样,请清理并构建您的项目,然后再次查看。我的理解是,如果您的项目代码在您第一次构建后没有更改,那么即使您构建它,它也不会更新 dll 文件或再次调用构建事件。它会在 VS 输出窗口中显示最新消息。但是如果你清理它,然后重新构建它,它会再次复制 dll。

【讨论】:

  • 谢谢杰克。我仍然得到错误。实际上我有多个引用相同 DTO、BLL 程序集的项目。会是这个原因吗?
  • @Kamran Shahid,如果它被其他项目/进程调用,我的理解是它会影响这个构建事件。当然,你可以在禁用/删除引用后进行测试,查看结果。
  • @Kamran Shahid,这个问题呢?它现在可以将 .dll 文件复制到正确的路径吗?
猜你喜欢
  • 2011-06-08
  • 1970-01-01
  • 2021-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多