退出我有一个后生成事件一个项目:后生成的代码1
copy $(ProjectDir)DbVerse\Lunaverse.DbVerse.*.exe $(TargetDir)
它在我的机器上的每一次工作正常。我有一位总是得到“退出代码1”错误的新开发人员。我让她在DOS提示符下运行相同的命令,并且它工作正常。什么可能导致这个?有什么办法可以解决真正的错误吗?
我们同时使用的Visual Studio 2008
退出我有一个后生成事件一个项目:后生成的代码1
copy $(ProjectDir)DbVerse\Lunaverse.DbVerse.*.exe $(TargetDir)
它在我的机器上的每一次工作正常。我有一位总是得到“退出代码1”错误的新开发人员。我让她在DOS提示符下运行相同的命令,并且它工作正常。什么可能导致这个?有什么办法可以解决真正的错误吗?
我们同时使用的Visual Studio 2008
她在她的路径中的文件夹名称之一中有一个空格,并且周围没有引号。
在路径名上加上引号是一种很好的做法。 不能在包含空格的路径中工作更好:-) – Asher 2008-11-21 21:54:22
空间的东西也让我感到很开心。 – 2011-03-15 06:57:08
copy/y“$(TargetDir)Dotfuscated \”“$(TargetDir)”这个命令对我来说不合适,如果我在结尾处写入出口0,则工作正常。你能告诉我为什么吗? – 2012-10-22 03:12:41
获取process monitor from SysInternals 设置它来监控Lunaverse.DbVerse(路径字段)看操作结果。 从那里应该很明显出了什么问题
我的代码1的原因是目标文件夹是只读的。希望这可以帮助别人! 我有一个后期构建事件来从一个目录复制到另一个目标是只读。所以我只是去取消选中目录及其所有子目录中的只读属性!只要确保它是一个安全的目录!
对我来说,我必须确保我正在处理文件的程序当时没有运行。语法中没有任何错误。希望这可以帮助某人。
我不得不跑VS以管理员身份让我生成后拷贝保护的OS“.. \ Common7 \ IDE \ PrivateAssemblies”工作
我加入这为今后的游客,因为这是相当一个积极的问题。
ROBOCOPY离开与正在8.请参见“成功代码”:http://support.microsoft.com/kb/954404
这意味着:
robocopy exit code 0 = no files copied
robocopy exit code 1 = files copied
When the result is 1, this becomes an error exit code in visual studio.
所以,我通过添加这对的底部容易地解决这个批处理文件
exit 0
建议以这种方式处理ROBOCOPY错误
rem each robocopy statement and then underneath have the error check.
if %ERRORLEVEL% GEQ 8 goto failed
rem end of batch file
GOTO success
:failed
rem do not pause as it will pause msbuild.
exit 1
:success
exit 0
混乱将设置在当没有文件被复制=在VS.没有错误然后当有变化时,文件会被复制,VS错误,但开发人员想要的所有内容都已完成。
附加提示:不要在脚本中使用暂停,因为这会在VS构建中无限期地暂停。同时开发脚本,使用类似timeout 10
。你会注意到这一点,并将它评论出来,而不是有一个悬挂的版本。
我刚刚收到同样的错误。我曾在目的地路径是%需要进行转义
c:\projects\%NotAnEnvironmentVariable%
需要的是
c:\projects\%%NotAnEnvironmentVariable%%
对于那些,谁使用“复制”命令生成事件(预构建事件命令行或/和构建后事件命令行)从项目 - >属性:您'复制'命令参数应如下所示:copy "source of files" "destination for files"
。请记住使用引号(以避免地址字符串中的空格出现问题)。
这么多的解决方案......
就我而言,我不得不保存非Unicode(西,Windows)中编码的bat文件。默认情况下,当我将文件添加到Visual Studio(并且可能我应该在VS之外完成它)时,它会添加UTF-8编码。
我能够通过以管理员身份运行Visual Studio来修复我的代码1。很明显,它没有权限在没有Admin的情况下执行shell命令。
好吧,这是一个很多解决方案的问题,所以我只是发布我的人给更多的提示。 我的情况是仔细检查路径中的文件夹,并确保它们都存在于您的机器中。例如:“$(SolutionDir)\ partBin \ Bin \ $(ProjectName).pdb”,但“Bin”不在partBin文件夹中。
我有这个相同的问题,事实证明,这是因为我已经重命名该项目。我进入了项目属性,并将程序集名称和根名称空间更改为项目名称,并在此之后运行良好!
对于那些,谁从项目生成事件(预生成事件命令行或/和生成后事件命令行)使用“复制”命令 - >属性:目标文件夹应该存在
我有一个类似的问题,但特别是在Jenkins构建环境中。要解决这个问题,我在后期构建事件中使用复制命令切换到使用复制目标。
我改变了这个:
<PropertyGroup>
<PostBuildEvent>copy $(ProjectDir)bin\BLAH.Common.xml $(ProjectDir)App_Data\BLAH.Common.xml</PostBuildEvent>
</PropertyGroup>
这样:
<Target Name="AfterBuild">
<Copy SourceFiles="$(ProjectDir)bin\BLAH.Common.xml" DestinationFolder="$(ProjectDir)App_Data\" />
</Target>
,现在工作得很好。
我得到特定的错误是:
(PostBuildEvent target) ->
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(4291,5): error MSB3073: The command "copy <http://1.2.3.4/job/BLAHv2/ws/Api/bin/BLAH.Common.xml> <http://1.2.3.4/job/BLAHv2/ws/Api/App_Data/BLAH.Common.xml"> exited with code 1. [<http://1.2.3.4/job/BLAHv2/ws/Api/Api.csproj]>
在我的情况
,答案蒂姆·斯科特提供接近此页的末尾(所以我忽略了开头)解决我的问题。 – 2016-11-29 06:18:02