MSBuild не распознает имя компьютера в файле ответов - PullRequest
1 голос
/ 04 октября 2009

У нас есть стандартный файл проекта MSBuild, который используется для различных этапов развертывания (предварительный этап, этап, прямой эфир и т. Д.). Поскольку каждый этап развертывания выполняется на отдельном сервере, мы ввели параметр сервера с именем $SourceDatabaseServer и широко использовали его в каждой из целей в файле проекта. Примечание. Это имя сервера базы данных может отличаться от имени сервера, на котором выполняется сборка.

Чтобы помочь нам с настройкой этого параметра, мы создали файл ответов для каждого этапа развертывания и впоследствии определили значение этого параметра в файле ответов, например, /p:SourceDatabaseServer=SRC_DB_NAME.

Это работало нормально, пока мы не создали новый этап развертывания, на котором это значение должно было быть текущим именем компьютера. Таким образом, мы подумали, что используя зарезервированное свойство $(COMPUTERNAME) в файле ответов (/p:SourceDatabaseServer=$(COMPUTERNAME)), это поможет, но кажется, что это значение интерпретируется MSBuild буквально, и в результате мы получаем ошибку, что сервер $(ComputerName) не может быть найден.

Интересно, что когда свойство $(COMPUTERNAME) используется непосредственно в файле proj, оно работает, но, как указано выше, мы не обязательно хотим использовать имя компьютера во всех случаях.

Есть ли способ по-прежнему использовать свойство $(COMPUTERNAME) в файле ответов и заставить MSBuild правильно его интерпретировать?

1 Ответ

1 голос
/ 04 октября 2009

Что делать, если вы используете %COMPUTERNAME%?

$(VAR) - это синтаксис для расширения переменных, когда вы находитесь «внутри» системы MSBuild, но, исходя из внешнего вида, я считаю, что вам придется использовать синтаксис расширения переменных среды оболочки, %VAR%.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...