gpt4 book ai didi

msbuild - 如何在 msbuild 目标中获取进程 ID

转载 作者:行者123 更新时间:2023-12-05 01:47:32 24 4
gpt4 key购买 nike

如何获取目标内 msbuild 进程的进程 ID?我要阅读并写出来?

或者,MSBuild 是否有某种我们可以捕获的 session ID?

我只想在每次构建运行时运行一次 T4 任务,并考虑有条件的方法来构建它。否则运行多次

<TransformOnBuild>false</TransformOnBuild>
<TransformOnBuild Condition="'$(SomeCondition)' == 'true'">false</TransformOnBuild>

最佳答案

如果你想运行一些东西,一旦你可以将它包装在一个目标中,MSBuild 不会执行两次相同的目标,无论它被调用多少次。如果您想要一个简单的互斥锁,您可以使用通常的锁定文件技术,使用内置的 WriteLinesToFileDelete 任务以及 InitialTargets。如果您想要实际的进程 ID,即正在执行您的任务的(许多)MSBuild 节点,您可以编写一个内联任务,请参见下面的示例。

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask TaskName="Process" TaskFactory="CodeTaskFactory" AssemblyName="Microsoft.Build.Tasks.v12.0">
<ParameterGroup>
<Id ParameterType="System.Int32" Output="true" />
</ParameterGroup>
<Task>
<Code>Id = System.Diagnostics.Process.GetCurrentProcess().Id;</Code>
</Task>
</UsingTask>

<Target Name="Foo">
<Process>
<Output PropertyName="Id" TaskParameter="Id" />
</Process>
<Message Text="Process $(Id)" />
</Target>
</Project>

关于msbuild - 如何在 msbuild 目标中获取进程 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25215805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com