作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有什么方法可以像我们以前使用 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/
我是一名优秀的程序员,十分优秀!