Скрипт после сборки, возвращающий уровень ошибки 255
В настоящее время у меня есть следующий скрипт для пост-сборки проекта:
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 ответа
Насколько я знаю, IF
в пакетных файлах не поддерживает C, как синтаксис ORing вместе несколько выражений.
Поэтому в качестве первой попытки измените эти первые строки вашего скрипта с:
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)
,
Остальное должно работать нормально.
В cmd.exe введите net helpmsg 255
:
Расширенные атрибуты несовместимы.
Я понятия не имею, действительно ли это ошибка, но это удобный способ расшифровки кодов ошибок Win32.