MSBuild任务读取dll的版本

Mik*_*all 18 msbuild

我正在寻找一个MSBuild任务,它会告诉我特定dll的版本.有没有可用的任务?

在我的情况下,DLL是一个.Net程序集,所以我实际上在寻找Assembly.FullName.

Jul*_*rau 27

GetAssemblyIdentity是你的男人.此任务输出包含名为Version,PublicKeyToken和Culture的项元数据条目.

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

<Target Name="RetrieveIdentities>
    <GetAssemblyIdentity
        AssemblyFiles="@(MyAssemblies)">
        <Output
            TaskParameter="Assemblies"
            ItemName="MyAssemblyIdentities"/>
    </GetAssemblyIdentity>
</Target>
Run Code Online (Sandbox Code Playgroud)


Mik*_*all 24

谢谢madgnome!我以为我会分享工作代码.

<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>
Run Code Online (Sandbox Code Playgroud)