У нас есть стандартный файл проекта MSBuild, который используется для различных этапов развертывания (предварительный этап, этап, прямой эфир и т. Д.). Поскольку каждый этап развертывания выполняется на отдельном сервере, мы ввели параметр сервера с именем $SourceDatabaseServer
и широко использовали его в каждой из целей в файле проекта. Примечание. Это имя сервера базы данных может отличаться от имени сервера, на котором выполняется сборка.
Чтобы помочь нам с настройкой этого параметра, мы создали файл ответов для каждого этапа развертывания и впоследствии определили значение этого параметра в файле ответов, например, /p:SourceDatabaseServer=SRC_DB_NAME
.
Это работало нормально, пока мы не создали новый этап развертывания, на котором это значение должно было быть текущим именем компьютера. Таким образом, мы подумали, что используя зарезервированное свойство $(COMPUTERNAME)
в файле ответов (/p:SourceDatabaseServer=$(COMPUTERNAME)
), это поможет, но кажется, что это значение интерпретируется MSBuild буквально, и в результате мы получаем ошибку, что сервер $(ComputerName)
не может быть найден.
Интересно, что когда свойство $(COMPUTERNAME)
используется непосредственно в файле proj, оно работает, но, как указано выше, мы не обязательно хотим использовать имя компьютера во всех случаях.
Есть ли способ по-прежнему использовать свойство $(COMPUTERNAME)
в файле ответов и заставить MSBuild правильно его интерпретировать?