При попытке использования в коде (AX2012) в меру “сложных*» библиотек, может возникнуть ситуация, когда библиотека “не видна**» компилятором
*- например библиотека Microsoft.TeamFoundation.Build2.WebApi.dll (эта библиотека в свою очередь ссылается ещё на ряд других библиотек)
**-Если ввести полное имя namespace’а, то комплятор выдаёт ошибку.

В таком случае один из эффективных способов поиска недостающих библиотек, это использование Assembly Binding Log Viewer (https://docs.microsoft.com/en-us/dotnet/framework/tools/fuslogvw-exe-assembly-binding-log-viewer) (он же Fuslogvw.exe)

Для того чтобы использовать fuslogvw.exe:

  1. Установить .NET SDK4 (возможно есть другой способ получить исполнимый файл fuslogvw.exe, но в случае установки .NET SDK4 Вы наверняка его получите). Непосредственно .NET SDK4 я нашёл тут https://www.microsoft.com/en-us/download/confirmation.aspx?id=8279 Microsoft Windows SDK for Windows 7 and .NET Framework 4
  2. По пути (C:Program Files (x86)Microsoft SDKsWindowsv8.1AbinNETFX 4.5.1 Tools) от админа запустить fuslogvw.exe. Как только Вы запустите fuslogvw.exe откроется окно в которо необходимо сделать некоторые настройки, более детально про настройки написано здесь (Using Fuslogvw.exe to Find Missing Referenced DLLs in Microsoft Dynamics AX 2012 (https://www.loganconsulting.com/blog/using-fuslogvw-exe-to-find-missing-referenced-dlls-in-microsoft-dynamics-ax-2012/)). Примечание: искомая информация появится как только клиент Аксапты будет презапущен и в окне fuslogvw вы нажмёте кнопку Refresh .
  3. Кроме “ругани» на отсутствующие dll может ещё ругаться на версии dll, иными словами – если вы используете используете Microsoft.TeamFoundation.Build2.WebApi.dll (version 15.0.0.0), а система ожидает такую же dll только (version 14.0.0.0), то необходимо сделать следующее: открыть в текстовом редакторе файл C:Program Files (x86)Microsoft Dynamics AX60ClientBinAx32.exe.config.

Оригинальный текст в данном файле будет выглядеть вот так:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0.30319" />
        <requiredRuntime version="v4.0.30319" safemode="true"/>
    </startup>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <probing privatePath="EditorComponents"/>
            <dependentAssembly>
                <assemblyIdentity name="ste-net" publicKeyToken="5542884f620dbde5" culture="neutral" />
                <bindingRedirect oldVersion="1.0.1.59-1.0.1.95" newVersion="1.0.1.95"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>

Необходимо добавить недостающие конфигурации, т.е. как видно из кода ниже, были добавлены блоки с обрамляющими тегами , значение для publicKeyToken возьмите из логов fuslogvw

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0.30319" />
        <requiredRuntime version="v4.0.30319" safemode="true"/>
    </startup>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <probing privatePath="EditorComponents"/>
            <dependentAssembly>
                <assemblyIdentity name="ste-net" publicKeyToken="5542884f620dbde5" culture="neutral" />
                <bindingRedirect oldVersion="1.0.1.59-1.0.1.95" newVersion="1.0.1.95"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.VisualStudio.Services.Common" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-15.0.0.0" newVersion="15.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.TeamFoundation.Common" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-15.0.0.0" newVersion="15.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.VisualStudio.Services.WebApi" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-15.0.0.0" newVersion="15.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>
Published On: / Categories: Блог /

Развивайте бизнес с нами!

OntargIT является официальным партнером Microsoft по внедрению технологий Dynamics 365. С нашим опытом в различных отраслях, мы обеспечим индивидуальный подход и эффективные решения, которые будут идеально соответствовать потребностям вашей компании. Оставьте заявку сейчас, и наша команда экспертов поможет вам воспользоваться всеми преимуществами Dynamics 365.

Развивайте бизнес с нами!

OntargIT является официальным партнером Microsoft по внедрению технологий Dynamics 365. С нашим опытом в различных отраслях, мы обеспечим индивидуальный подход и эффективные решения, которые будут идеально соответствовать потребностям вашей компании. Оставьте заявку сейчас, и наша команда экспертов поможет вам воспользоваться всеми преимуществами Dynamics 365.