Tim*_*ott 104 visual-studio-2008 post-build
我有一个带有post build事件的项目:
copy $(ProjectDir)DbVerse\Lunaverse.DbVerse.*.exe $(TargetDir)
Run Code Online (Sandbox Code Playgroud)
它每次都在我的机器上工作正常.我有一个新的开发人员总是得到"退出代码1"错误.我让她在DOS提示符下运行相同的命令,它工作正常.可能是什么导致了这个?有没有办法解决真正的错误?
我们都使用Visual Studio 2008.
Tim*_*ott 113
她的路径中的一个文件夹名称中有一个空格,周围没有引号.
Jan*_*rup 57
带有"Pings"的人帮助了我......但可能会更好一点解释......
对我来说,解决方案是改变:
copy $(TargetDir)$(TargetName).* $(SolutionDir)bin
Run Code Online (Sandbox Code Playgroud)
对此:
copy "$(TargetDir)$(TargetName).*" "$(SolutionDir)bin"
Run Code Online (Sandbox Code Playgroud)
希望对你有效.:-)
小智 46
我对代码1的原因是目标文件夹是只读的.希望这有助于某人!我有一个post build事件来从一个目录复制到另一个目录,目标是只读的.所以我只是去取消选中目录及其所有子目录的只读属性!只要确保它的目录是安全的!
Val*_*mas 43
我已经为未来的访问者添加了这个,因为这是一个非常活跃的问题.
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.
Run Code Online (Sandbox Code Playgroud)
所以我通过将其添加到批处理文件的底部轻松解决了这个问题
exit 0
Run Code Online (Sandbox Code Playgroud)
建议以这种方式处理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
Run Code Online (Sandbox Code Playgroud)
没有文件被复制时,将设置混淆= VS中没有错误.然后当有变化时,文件会被复制,VS错误,但开发人员想要的一切都已完成.
附加提示:不要在脚本中使用暂停,因为这将成为VS构建中的无限暂停.在开发脚本时,使用类似的东西timeout 10.您会注意到这一点并将其注释掉,而不是悬挂构建.
针对这一情况,谁使用" 副本在"命令生成事件(预生成事件命令行或/和生成后事件命令行的)项目- >属性:你复制 "命令参数应该像在这里:copy "source of files" "destination for files".请记住使用引号(以避免地址字符串中的空格问题).
我有一个类似的问题,但特别是在 Jenkins 构建环境中。为了解决这个问题,我从在构建后事件中使用复制命令切换到使用复制目标。
我改变了这个:
<PropertyGroup>
<PostBuildEvent>copy $(ProjectDir)bin\BLAH.Common.xml $(ProjectDir)App_Data\BLAH.Common.xml</PostBuildEvent>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
对此:
<Target Name="AfterBuild">
<Copy SourceFiles="$(ProjectDir)bin\BLAH.Common.xml" DestinationFolder="$(ProjectDir)App_Data\" />
</Target>
Run Code Online (Sandbox Code Playgroud)
现在它工作正常。
我得到的具体错误是:
(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]>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
149482 次 |
| 最近记录: |