如何解决这个错误: “命令[ ... ]以代码1退出”?

我阅读了很多问题,但是我还没有找到正确的答案。

当我尝试在 VS2012中编译一个项目时,我得到了这样的结果:

命令“ ... . tools bin nuget pack Packages Lib. Html.nuspec-OutputDirectory... . bin Zip Packages-NoPackageAnalysis”以代码1退出。

我在我的. csproj 文件中查找代码行,错误应该出现在那里,结果是:

<Exec Command="$(ProjectDir)..\..\tools\bin\nuget pack $(ProjectDir)Packages\Lib.Html.nuspec -OutputDirectory $(OutputPath)Packages -NoPackageAnalysis" />

我做错了什么?

[编辑] 启动该项目的调试并忽略“构建错误”,我有一个新的警告:

”由于缺少调试目标‘[ project.exe 路径]’,VisualStudio 无法启动调试。 请生成项目并重试,或者适当设置 OutputPath 和 AssemblyName 属性以指向目标程序集的正确位置。”

218503 次浏览

第一步是找出错误实际上是什么。为此,将 MsBuild 输出扩展为诊断输出。这将显示实际执行的命令,并希望也能显示完整的错误消息

  • 工具-> 选项
  • 项目和解决方案-> 构建和运行
  • 将“ MsBuild 项目构建输出详细度”更改为“诊断”。

对我来说,在 VS2013中,我必须在 UI 项目(MVC)的 References 下去掉缺少的引用。结果发现,失踪的那些并没有被提及。

右键单击 project-> Properties-> Build Events

删除后期生成事件命令行文本块中的文本

尝试以管理员身份打开 VisualStudio。

我知道这已经太迟了,但是,这也可以帮助别人。

在我的例子中,我发现源文件正在被另一个进程使用,这个进程限制从复制到目标。我发现通过使用命令提示符(只需将 post build 命令复制粘贴到命令提示符并执行就可以得到错误信息)。

确保可以从命令提示符复制,

对于我来说: 在路径的文件夹名 G:\Other Imp Projects\Mi.....中有一个空白

解决方案1:

从文件夹中删除空白

示例: Other Imp Projects-> > Other_Imp_Projects

解决方案2:

为路径添加引号("")。

示例: mkdir "$(ProjectDir)$(OutDir)Configurations"//参见双引号

这是建立在 JaredPar 的答案之上的,是为 VS2017准备的。VisualStudio2017中存在相同的“生成和运行”选项。

我得到的命令“ chmod + x”“”退出了代码1

在构建输出窗口中,我搜索了“ Error”,并在同一个大致区域中发现了一些错误。我能够单击构建输出中的链接,发现错误涉及。目标档案:

  <Target Name="ChmodChromeDriver" BeforeTargets="BeforeBuild" Condition="'$(WebDriverPlatform)' != 'win32'">
<Exec Command="chmod +x &quot;$(ChromeDriverSrcPath)&quot;" />
</Target>

在构建输出中,我还发现了一个更详细的错误消息,该消息实际上指出它无法找到 Selenium。WebDriver.ChromeDriver v2.36在它正在查找的包文件夹中。我检查了该项目的 NuGet 包,2.36版确实在安装包列表中。我找到了2.36的包文件,并将文件夹、子文件夹和文件的属性从“只读”更改为“读/写”。建好了,但还是失败了。有时“更新”到包的不同版本,然后再更新回原始版本可以修复此类错误。因此,我将 Manage NuGet 包中的引用“更新”到2.37,构建,失败,然后“更新”回到2.36,构建,构建成功,没有出现“ chmod + x”错误消息。

我正在构建的项目基于一个用于 Appium 测试工具的 VisualStudio 项目模板,模板名为“ Development _ Automated _ Test”。

检查你的路径 : 如果为 TFS 使用单独的构建服务器(很可能) ,请确保。Csproj 文件 匹配 < strong > TFS server 路径。在检入 * 时,我得到了上述错误。当 csproj 文件引用我的开发机器路径而不是 TFS 服务器路径时。

删除多行命令 : 另外,作为预防措施,尝试将多行命令删除到 xml 中的单行命令中。在 * 中有以下 xml。在 TFS 中引起问题的 proj:

<Exec Condition="bl.."
Command=" Blah...
..." </Exec>

将上面的 xml 更改为:

  <Exec Condition="bl.." Command=" Blah..." </Exec>

我也有同样的问题。尝试以上所有答案。实际上有人抱怨。Dll 文件。我在 VisualStudio 中清理项目,但。Dll 文件仍然保留,所以我从 bin 文件夹手动删除,它工作。

希望这对某些人有帮助,但是我有预构建事件和后期构建事件,它一直抱怨一个名为“ Microsoft”的文件。常见。Target”“目标“ CoreBuild”在项目中不存在”。

以下是我为了解决这个问题所做的努力:

  1. 结束这个项目
  2. 删除. suo 文件(它将重新生成)
  3. 要求团队成员提供该文件的副本(Microsoft。常见。CurrentVersion.target)-我的不一样-我拿了他的。
  4. 编译好了,可以开始了。

我一定是不知怎么弄坏了那份文件。

在我的批处理文件中没有语法错误,它在 VS 之外的 cmd 提示符上运行良好。 最后,我补充道

exit 0

在批处理文件的末尾显式地返回一个成功代码,它就开始工作了。

对我来说,输出文件(。Dll)的相同版本已经存在,所以我猜它是有麻烦覆盖。尽管它以前从未这样做过。无论如何,删除现有的文件和运行重建为我修复它。

如果上一个方法没有修复它,我的下一个检查将是检查路径长度是否导致它。因此,应该将目标文件夹更改为靠近桌面的位置,这样路径就不会太长。

提示: 在项目中搜索“ Exec Command =”

在我的案例中,我发现下面的标签“微软。分机。描述。目标”文件中,我注意到了这一行,它对我很有用:

<Exec Command="$(_Command)" LogStandardErrorAsError="true" />