Скрипт после сборки, возвращающий уровень ошибки 255 - PullRequest
6 голосов
/ 13 октября 2010

В настоящее время у меня есть следующий сценарий для пост-сборки проекта:

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 ]

10 голосов
/ 13 октября 2010

В cmd.exe введите net helpmsg 255:

Расширенные атрибуты несовместимы.

Я не знаю, является ли это действительной ошибкой, но этоудобный способ расшифровки кодов ошибок Win32.

5 голосов
/ 13 октября 2010

Насколько я знаю, IF в пакетных файлах не поддерживает синтаксис, подобный С, для объединения нескольких выражений в OR.

Итак, в качестве первой попытки измените эти первые строки вашего скрипта с:

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).
Остальные должны работать нормально.

...