MSBuild Задача прочитать версию dll - PullRequest
18 голосов
/ 14 января 2009

Я ищу задачу MSBuild, которая сообщит мне версию определенной библиотеки DLL. Для этого есть задача?

В моем случае dll - это сборка .Net, поэтому я действительно ищу Assembly.FullName.

Ответы [ 2 ]

25 голосов
/ 14 января 2009

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>
23 голосов
/ 14 января 2009

Спасибо, 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...