gpt4 book ai didi

visual-studio-2010 - 如何在 Team Build 2010 Workflow 中获取程序集的版本

转载 作者:行者123 更新时间:2023-12-05 01:38:07 25 4
gpt4 key购买 nike

有什么方法可以像我们以前使用 Team Build 2010 Workflow 使用 Msbuild 那样获取程序集的版本号?这是一个简单的例子,说明我们过去如何使用 %(Info.Version) 获取程序集版本。 .

  <Target Name="CheckFileVersion" DependsOnTargets="AfterDrop">
<ItemGroup>
<MyAssemblies Include='$(DropLocation)\$(BuildNumber)\Release\MyApp.exe' />
</ItemGroup>
<GetAssemblyIdentity AssemblyFiles="@(MyAssemblies)">
<Output TaskParameter="Assemblies" ItemName="Info"/>
</GetAssemblyIdentity>
</Target>

我找到了一些使用多行代码创建自定义事件的方法,但我认为必须有一种更简单的方法来做到这一点。

最佳答案

GoRoS 的想法是正确的,但它只能在第一次正确运行。

为了避免这个问题,你必须运行这段代码,或者在与 Build Agent 不同的 AppDomain 中运行类似的代码,Powershell 和一个 InvokeProcessActivity 可以解决我们的问题。

获取AssemblyVersionNumber.ps1:

$error.clear()

if ($args.length -ne 1)
{
Write-Error "Usage: GetAssemblyVersionNumber.ps1 <Assembly>"
exit 1
}

# Now load the assembly
$assembly = [System.Reflection.Assembly]::Loadfile($args[0])

# Get name, version and display the results
$name = $assembly.GetName()
Write-Host $name.version

并将以下内容添加到您的构建过程模板中
InvokeProcessActivity
Name: Call Powershell Version Script
Filename: "powershell.exe"
Arguments: "-NonInteractive -NoProfile -Command " _
+ "c:\Builds\GetAssemblyVersionNumber.ps1" _
+ " '" + BuildDirectory + "\Binaries\Foobar.dll'"
Handle Standard Output (stdOutput)

AssignActivity
To: VersionInfo
Value: stdOutput

关于visual-studio-2010 - 如何在 Team Build 2010 Workflow 中获取程序集的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7647444/

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