2009-01-14 8 views
18

Ich bin auf der Suche nach einer MSBuild Aufgabe, die mir die Version einer bestimmten DLL sagen wird. Gibt es dafür eine Aufgabe?MSBuild Task zum Lesen der Version von dll

In meinem Fall ist die DLL eine .Net-Assembly, ich suche eigentlich nach Assembly.FullName.

Antwort

22

Danke madgnome! Ich dachte, ich würde den Arbeitscode teilen.

<Target Name="UpdateWebConfigVersion"> 
    <GetAssemblyIdentity AssemblyFiles="lib\foo.dll"> 
     <Output TaskParameter="Assemblies" ItemName="fooAssemblyInfo"/> 
    </GetAssemblyIdentity> 
    <XmlUpdate XmlFileName="src\Web\ServiceModel.Extensions.config" 
      XPath="//extensions/behaviorExtensions/add[@name='silverlightFaults']/@type" 
      Value="foo.ServiceModel.Extensions.Behaviors.SilverlightFaultBehavior, foo, Version=%(fooAssemblyInfo.Version), Culture=neutral, PublicKeyToken=XXXXXXXX"/> 
</Target> 
+0

Ich mache zip-Dateien in meinem Build-Skript, das half mir, die Versionsnummer in den Dateinamen zu setzen !!! Vielen Dank! – quip

+1

das Arbeitscode Beispiel wirklich helfen - eine große Zeitersparnis. Vielen Dank! –

25

GetAssemblyIdentity ist dein Mann. Diese Aufgabenausgaben enthalten Elementmetadateneinträge mit den Namen Version, PublicKeyToken und Culture.

<ItemGroup> 
    <MyAssemblies Include="File1.dll;File2.dll" /> 
</ItemGroup> 

<Target Name="RetrieveIdentities> 
    <GetAssemblyIdentity 
     AssemblyFiles="@(MyAssemblies)"> 
     <Output 
      TaskParameter="Assemblies" 
      ItemName="MyAssemblyIdentities"/> 
    </GetAssemblyIdentity> 
</Target> 
Verwandte Themen