我只是想通过我的azure构建管道构建t4文件。我尝试了以下操作:
将以下powershell脚本添加到我的解决方案项中:
$progFilesx86Path = [System.Environment]::ExpandEnvironmentVariables("%programfiles(x86)%")
$vsWherePath = Join-Path $progFilesx86Path "\Microsoft Visual Studio\Installer\vswhere.exe"
$textTransformLocation = & $vsWherePath -latest -find **\TextTransform.exe -format value
if (-Not(Test-Path $textTransformLocation)){
throw "Could not locate TextTransform.exe"
}
Get-ChildItem -Path .\ -Filter *.tt -r | % {
& "$textTransformLocation" $_.FullName -out $_.FullName.Replace(".tt", ".cs")
}
当我使用powershell ISE调用该脚本并在项目中实际生成.cs文件时,此脚本可以正常工作,但是当我在管道中添加powershell任务以执行该脚本时,什么也没有发生。我的任务描述如下:
- task: PowerShell@2
inputs:
filePath: '$(System.DefaultWorkingDirectory)/test.ps1'
当我运行管道时,它实际上告诉我脚本已成功执行(它实际上还通过命令行列出了所有找到的tt文件),但是尚未创建来自tt的.cs文件。
因此,在此之后,我试图通过Visual Studio构建来构建我的文件,将以下内容添加到我的项目文件中:
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v16.0\TextTemplating\Microsoft.TextTemplating.targets" />
<PropertyGroup>
<TransformOnBuild>true</TransformOnBuild>
<!-- Other properties can be inserted here -->
</PropertyGroup>
这在我本地构建时有效,但是在通过管道构建项目时也不会生成文件。
有人知道我在这里想念的是什么,或者我怎么能完成这项任务?