Saturday, February 5, 2011

MSBuild Task to read version of dll

I am looking for a MSBuild task that will tell me the version of a specific dll. Is there a task available for this?

In my case the dll is a .Net assembly, so I'm actually looking for Assembly.FullName.

  • GetAssemblyIdentity is your man. This task outputs contain item metadata entries named Version, PublicKeyToken, and Culture.

    <ItemGroup>
        <MyAssemblies Include="File1.dll;File2.dll" />
    </ItemGroup>
    
    <Target Name="RetrieveIdentities>
        <GetAssemblyIdentity
            AssemblyFiles="@(MyAssemblies)">
            <Output
                TaskParameter="Assemblies"
                ItemName="MyAssemblyIdentities"/>
        </GetAssemblyIdentity>
    </Target>
    
    From madgnome
  • Thanks madgnome! I thought I would share the working code.

    <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>
    
    quip : I make zip files in my build script, this helped me put the version number in the filename!!! Thanks!
  • Great! Exactly what i was looking for. Thnx!

    ripper234 : Should be a comment, not an answer.
    From benzhi

0 comments:

Post a Comment