检索MSbuild中多个DLL的程序集版本信息

时间:2008-12-05 15:03:23

标签: msbuild assemblies

我很乐意为将作为DLL输出的给定项目编写程序集版本信息。

但是,我现在要做的是遍历\ Bin文件夹中的每个DLL,检索程序集信息并将其写入versions.txt文件。

有没有人设法实现类似的目标?

1 个答案:

答案 0 :(得分:1)

您可以使用下面定义的WriteVersionToFile MSBuild目标:

<PropertyGroup>
  <VersionsFile>versions.txt</VersionsFile>
</PropertyGroup> 

<ItemGroup>
  <!-- Assemblies for which you want versions-->
  <AssemblyFiles Include="Bin\**\*.dll"/>
</ItemGroup>

<Target Name="ExtractVersions">
  <GetAssemblyIdentity AssemblyFiles="@(AssemblyFiles)">
    <Output TaskParameter="Assemblies" ItemName="MyAssemblyIdentities"/>
  </GetAssemblyIdentity>
  <Message Text="%(MyAssemblyIdentities.Name) - Version %(Version)"/>
</Target>

<Target Name="WriteVersionToFile" DependsOnTargets="ExtractVersions">
  <Delete Files="$(VersionsFile)" />
  <WriteLinesToFile File="$(VersionsFile)"
                    Lines="%(MyAssemblyIdentities.Name) - %(Version)"
                    Overwrite="false"
                    Encoding="Unicode"/>
</Target>


输出文件versions.txt将如下所示:

ICSharpCode.SharpZipLib - 0.85.4.369
nunit.framework - 2.4.7.0
Test.Rules - 0.2.0.0