2008-12-05 44 views
1

全部檢索MSbuild中的多個DLL的彙編版本信息

我很自在地爲將輸出爲DLL的給定項目編寫程序集版本信息。

但是我現在要做的是要通過\ Bin文件夾中的每個DLL,檢索程序集信息並將其寫入到versions.txt文件中。

有沒有人設法達到類似的目標?

回答

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 
+0

我得到錯誤:錯誤MSB4064: 「編碼」 參數與「WriteLinesToFile」任務不兼容 – Kiquenet 2010-08-16 10:23:06