msbuild не может зарегистрировать вывод
-
03-07-2019 - |
Вопрос
Я пытаюсь заставить наши сценарии сборки (которые используют 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) для пользовательского этапа сборки.
Наконец вы получите сообщение о регистрации прогресса, но компиляция не остановится на этом этапе.