【发布时间】:2019-11-18 06:54:56
【问题描述】:
我将以下目标 xml 添加到我的 csproj(通过 nuget 包)
<Project>
<Target Name="AfterBuild">
<PropertyGroup>
<DockerExe Condition=" '$(DockerExe)'=='' ">"C:\Program Files\Docker\Docker\resources\bin\docker.exe"</DockerExe>
<ImageName Condition=" '$(ImageName)'=='' ">$(MSBuildProjectName)</ImageName>
<PowershellExe Condition=" '$(PowerShellExe)'=='' ">C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</PowershellExe>
</PropertyGroup>
<Exec Command="$(PowershellExe) -NonInteractive -executionpolicy Unrestricted -command $(MSBuildThisFileDirectory)..\tools\image_name.ps1" />
<Exec Command="$(DockerExe) build -t $(ImageName) ." />
</Target>
</Project>
和image_name.ps1 包含
$name = $(ImageName)
$name = $name.ToLower()
$name = $name.Replace(".", "_")
echo "Name is:"
echo $name
# $(ImageName) = $name
实际上正在调用 Powershell 脚本,但 $name(和 $(ImageName))是null,我不知道如何访问和更新目标文件中设置的 ImageName 属性。我尝试了$name = $Env:ImageName,但该分配的结果也是null。
【问题讨论】:
标签: powershell msbuild