English 中文(简体)
MSBuild任务读取DLL版本。
原标题:
  • 时间:2009-01-14 14:39:37
  •  标签:

我正在寻找一个MSBuild任务,它能够告诉我特定Dll的版本。有这样的任务可用吗?

在我的情况下,dll是一个.Net程序集,因此我实际上是在寻找程序集的FullName。

最佳回答

谢谢madgnome!我想分享一下可用的代码。

<Target Name="UpdateWebConfigVersion">
    <GetAssemblyIdentity AssemblyFiles="libfoo.dll">
        <Output TaskParameter="Assemblies" ItemName="fooAssemblyInfo"/>
    </GetAssemblyIdentity>
    <XmlUpdate XmlFileName="srcWebServiceModel.Extensions.config"
            XPath="//extensions/behaviorExtensions/add[@name= silverlightFaults ]/@type"
            Value="foo.ServiceModel.Extensions.Behaviors.SilverlightFaultBehavior, foo, Version=%(fooAssemblyInfo.Version), Culture=neutral, PublicKeyToken=XXXXXXXX"/>
</Target>
问题回答

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>




相关问题
热门标签