构建后脚本返回errorlevel 255

时间:2010-10-12 22:23:26

标签: visual-studio-2010 batch-file post-build

我目前有以下脚本作为项目的后期构建:

if $(ConfigurationName) == "Debug (x64)" || $(ConfigurationName) == "Release (x64)" (goto :x64)
if $(ConfigurationName) == "Debug" || $(ConfigurationName) == "Release" (goto :x86)

:x64
copy "$(SolutionDir)References\x64\System.Data.SQLite.dll" "$(TargetDir)System.Data.SQLite.dll"
goto :default

:x86
copy "$(SolutionDir)References\System.Data.SQLite.dll" "$(TargetDir)System.Data.SQLite.dll"
goto :default

:default
copy "$(SolutionDir)References\System.Data.SQLite.Linq.dll" "$(TargetDir)System.Data.SQLite.Linq.dll"

(根据配置将x86或x64版本的程序集复制到输出文件夹)

此脚本返回错误级别255,因为我不知道批处理脚本,是否有人可以指出错误?

2 个答案:

答案 0 :(得分:10)

在cmd.exe中,键入net helpmsg 255

  

扩展属性是   不一致。

我不知道这是否是实际错误,但它是解密Win32错误代码的一种方便方法。

答案 1 :(得分:5)

据我所知,批处理文件中的IF不支持将多个表达式ORing在一起的C语法。

首先尝试从以下位置更改脚本的第一行:

if $(ConfigurationName) == "Debug (x64)" || $(ConfigurationName) == "Release (x64)" (goto :x64)
if $(ConfigurationName) == "Debug" || $(ConfigurationName) == "Release" (goto :x86)

为:

if "$(ConfigurationName)"=="Debug (x64)" goto :x64
if "$(ConfigurationName)"=="Release (x64)" goto :x64
if "$(ConfigurationName)"=="Debug" goto :x86
if "$(ConfigurationName)"=="Release" goto :x86

另请注意"周围添加的$(ConfigurationName) 其余的应该可以正常工作。