我目前有以下脚本作为项目的后期构建:
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,因为我不知道批处理脚本,是否有人可以指出错误?
答案 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)
其余的应该可以正常工作。