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

时间:2014-03-03 16:01:29

标签: c# visual-studio-2012

我读了很多问题,但我找不到合适的答案。

当我尝试在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" />  

我做错了什么?

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

“Visual Studio无法启动调试,因为缺少调试目标'[project.exe path]'。 请构建项目并重试,或者相应地设置OutputPath和AssemblyName属性以指向目标程序集的正确位置。“

10 个答案:

答案 0 :(得分:99)

第一步是弄清楚错误究竟是什么。为此,请将MsBuild输出扩展为诊断。这将显示执行的实际命令,并希望完整的错误消息

  • 工具 - &gt;选项
  • 项目和解决方案 - &gt;构建并运行
  • 将“MsBuild项目构建输出详细程度”更改为“Diagnostic”。

答案 1 :(得分:22)

右键点击项目 - &gt;属性 - &gt;建立活动

删除构建后事件命令行文本块中的文本

答案 2 :(得分:2)

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

解决方案1:

从文件夹中删除空白

示例:Other Imp Projects->> Other_Imp_Projects

解决方案2:

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

示例:mkdir "$(ProjectDir)$(OutDir)Configurations" //看到双引号

答案 3 :(得分:1)

对我来说,在VS 2013中,我不得不在UI项目(MVC)中的References下删除缺少的引用。事实证明,缺少的那些没有被引用。

答案 4 :(得分:1)

尝试以管理员身份打开Visual Studio。

答案 5 :(得分:1)

我知道这肯定为时已晚,但是,这也可能对某人有所帮助。

就我而言,我发现源文件正在由另一个进程使用,该进程限制了复制到目标位置。我发现通过使用命令提示符(只需将post build命令复制粘贴到命令提示符并执行,即可得到错误信息)。

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

答案 6 :(得分:1)

检查您的路径: 如果您要为TFS使用单独的构建服务器(最有可能),请确保.csproj文件中的所有路径都与 TFS服务器路径相匹配。当我在* .csproj文件中引用了我的开发机器路径而不是TFS服务器路径时,出现了以上错误。

删除多行命令:此外,作为预防措施,尝试将多行命令删除为xml中的单行命令。我在* .proj中有以下xml,这导致了TFS中的问题:

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

将上述xml更改为有效:

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

答案 7 :(得分:0)

这基于JaredPar的答案...并且适用于VS2017。 Visual Studio 2017中提供了相同的“生成并运行”选项。

我正在获取,命令“ chmod + x“”“退出,代码为1

在构建输出窗口中,我搜索了“错误”,并在同一常规区域中发现了一些错误。我能够单击生成输出中的链接,发现错误涉及.targets文件中的此项:

  <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测试工具的Visual Studio项目模板,模板名称为“ Develop_Automated_Test”。

答案 8 :(得分:0)

我遇到了同样的问题。尝试了以上所有答案。它实际上是抱怨一个 .dll 文件。我在 Visual Studio 中清理了该项目,但 .dll 文件仍然存在,所以我从 bin 文件夹中手动删除了它并且它工作了。

答案 9 :(得分:0)

希望这对某人有所帮助,但我有预构建事件和后构建事件,它一直抱怨名为“Microsoft.Common.CurrentVersion.targets”的文件“项目中不存在目标“CoreBuild”。

>

这是我为解决它所做的:

  1. 关闭项目
  2. 删除 .suo 文件(它会重新生成)
  3. 要求团队成员提供该文件的副本 (Microsoft.Common.CurrentVersion.targets) - 我的不同 - 我拿了他的。
  4. 它已编译 - 一切顺利。

我一定以某种方式破坏了那个文件。