Синтаксис MSBuild для использования другого элемента PropertyReferences при вызове функции .NET - PullRequest
0 голосов
/ 12 октября 2018

Я хочу определить свойство Timestamp и использовать его для задания значения нескольких других свойств, как показано ниже:

   <PropertyGroup>
    <TrapHouseBuildToolsPath>..\TrapHouse.Build.NetStandard\bin\$(Configuration)\netstandard2.0\publish\TrapHouse.Build.NetStandard.dll</TrapHouseBuildToolsPath>

    <Timestamp>$([System.DateTime]::Now.ToUniversalTime()))</Timestamp>
    <DeploymentEnvironment>LOCALDEV</DeploymentEnvironment>
    <TrapHouseVersion>$(DeploymentEnvironment)$([System.String]::Format("{0:yyyyMMddHHmmss}", Timestamp)</TrapHouseVersion>
  </PropertyGroup>

В одной из моих задач я выплюнул значениеиз TrapHouseVersion, что не то, что я ожидаю:

4.5.0-LOCALDEV$([System.String]::Format("{0:yyyyMMddHHmmss}", Timestamp)

Кажется довольно ясным, что я неправильно понимаю синтаксис, но мне было трудно найти хорошие ресурсы для такого рода вещей.

Что мне нужно сделать, чтобы TrapHouseVersion оценил правильно?

1 Ответ

0 голосов
/ 12 октября 2018

Во-первых, вам не хватает закрывающей скобки в конце, но вы также знаете, что свойство не сохраняется как DateTime, но свойства хранятся только как строки, поэтому вы не можете использовать String.Format позже (за исключениемдля парсинга $(Timestamp) в DateTime снова):

<Project DefaultTargets="PrintVersion">
   <PropertyGroup>
    <Timestamp>$([System.String]::Format("{0:yyyyMMddHHmmss}", $([System.DateTime]::Now.ToUniversalTime())))</Timestamp>
    <DeploymentEnvironment>LOCALDEV</DeploymentEnvironment>
    <TrapHouseVersion>$(DeploymentEnvironment)$(Timestamp)</TrapHouseVersion>
  </PropertyGroup>

  <Target Name="PrintVersion">  
    <Message Importance="high" Text="TrapHouseVersion: $(TrapHouseVersion)" />
  </Target>  
</Project>

При запуске:

$ dotnet msbuild
Microsoft (R) Build Engine version 15.8.169+g1ccb72aefa for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

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