Вопрос

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

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

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

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

Брэд

Это было полезно?

Решение

Вы можете создать 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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top