msbuild не может зарегистрировать вывод - PullRequest
5 голосов
/ 29 апреля 2009

Я пытаюсь заставить наши скрипты сборки (которые используют MSBuild) работать корректно в Vista, и обнаруживаю, что проекты, для которых для параметра Выходной регистр (в настройках компоновщика) установлено значение True, не могут быть собраны из командной строки с чем-то вроде это:

Проект: ошибка PRJ0050: Не удалось зарегистрировать вывод. Попробуйте включить перенаправление на пользователя или зарегистрируйте компонент из командной строки с повышенными разрешениями.

Хотя я могу легко исправить это для одной машины, запустив с правами администратора или любой другой, который я хочу, чтобы скрипт сборки "просто работал" для любой машины разработчика.

Даже просто не пройти регистрацию, но продолжить сборку было бы удовлетворительно. Есть предложения?

Бред

1 Ответ

4 голосов
/ 18 июля 2009

Вы можете создать cmd-файл, который будет содержать следующий текст:

@echo off
call regsvr32.exe /s %1
if %errorlevel% EQU 0 goto ok
echo Fail to register %1
goto exit
:ok
echo Register successful %1
:exit

После этого необходимо отключить регистрацию вывода и добавить Custom Build Step с командой <pathtocmdscript> $(TargetPath). Выходные данные должны быть установлены в $ (TargetPath) для Custom Build Step.

Наконец вы получите сообщение о регистрации прогресса, но компиляция не остановится на этом шаге.

...