如何才能读取的AssemblyFileVersion,或其组件AssemblyFileMajorVersion,AssemblyFileMinorVersion,AssemblyFileBuildNumber,AssemblyFileRevision,在.csproj的范围内,以下编译?读的AssemblyFileVersion从集信息后编译
我已经试过这拉从内置组件的信息如下:
<Target Name="AfterCompile">
<GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
<Output
TaskParameter="Assemblies"
ItemName="MyAssemblyIdentities"/>
</GetAssemblyIdentity>
<Message Text="AssemblyVersion = %(MyAssemblyIdentities.Version)" />
</Target>
但是,检索的AssemblyVersion而不是的AssemblyFileVersion。后者似乎没有记录的元数据条目。我也试过:
<Import Project="$(MSBuildExtensionsPath)\ExtensionPack\MSBuild.ExtensionPack.tasks" />
<Target Name="AfterCompile">
<MSBuild.ExtensionPack.Framework.Assembly TaskAction="GetInfo" NetAssembly="$(TargetPath)">
<Output TaskParameter="OutputItems" ItemName="Info" />
</MSBuild.ExtensionPack.Framework.Assembly>
<Message Text="AssemblyFileVersion = %(Info.FileVersion)" />
</Target>
不幸的是,虽然这检索正确的值,直到VS2008关闭也文件锁的装配。
坦率地说,既不是我想要的,我宁愿直接从AssemblyInfo.cs中读取信息。但是,我无法弄清楚如何做到这一点。我假设MSBuild Extensions中的AssemblyInfo是一种方式,但它似乎专注于写入AssemblyInfo并且不从中检索值。
我该如何最好的完成这件事?
+1只是询问“我如何阅读”而不是总是找到的内容:如何更新版本信息。 – Yoopergeek 2009-10-06 18:42:41
既然我问了这个问题已经两个月了,唯一可用的答案是我自己的,我会继续接受它。我仍然认为可能有更好的办法。 – Gregyski 2009-10-08 19:11:03
@Yoopergeek:的确,有几种写作方法,但即使经过大量研究,阅读也难以实现。然而,我的回答确实很好。 – Gregyski 2009-10-08 19:11:49