NGen с WiX не работает для библиотек EntityFramework - PullRequest
0 голосов
/ 17 апреля 2019

Вот моя конфигурация WiX:

<!--EntityFramework.dll-->
      <Component Id="cmp_EntityFramework.dll" Guid="DAABA923-D36B-4F95-B25A-D48671D0E5CE">
        <File Id="fil_EntityFramework.dll" KeyPath="yes" Vital="yes" Source="$(var.SvcBinDir)\EntityFramework.dll">
          <netfx:NativeImage Id="ngen_EntityFramework.dll" Platform="64bit" Priority="0" AppBaseDirectory="INSTALLFOLDER"/>
        </File>
      </Component>

      <!--EntityFramework.SqlServer.dll-->
      <Component Id="cmp_EntityFramework.SqlServer.dll" Guid="CBBA1C50-B51D-4ECD-878B-FCAE42CAE65A">
        <File Id="fil_EntityFramework.SqlServer.dll" KeyPath="yes" Vital="yes" Source="$(var.SvcBinDir)\EntityFramework.SqlServer.dll">
          <netfx:NativeImage Id="ngen_EntityFramework.SqlServer.dll" Platform="64bit" Priority="0" AppBaseDirectory="INSTALLFOLDER"/>
        </File>
      </Component>

Мне пришлось изменить атрибут «Платформа», чтобы сделать это для 64-битного.Все компилируется и работает нормально.Однако я не вижу, чтобы библиотеки были ngen'd

Вот вывод перед первым запуском установки:

C: \ Windows \ Microsoft.NET \ Framework64 \v4.0.30319> ngen display EntityFramework Microsoft (R) CLR Native Image Generator - версия 4.7.3056.0 Copyright (c) Microsoft Corporation.Все права защищены.

Корни NGEN:

C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ EntityFramework.dll

Корни NGEN, которые зависятна «EntityFramework»:

C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ EntityFramework.dll C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \EntityFramework.SqlServer.dll C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ EntityFramework.SqlServerCompact.dll

Собственные изображения:

EntityFramework, Версия = 6.0.0.0, Культура = нейтральная, PublicKeyToken = b77a5c561934e089

Вот что я вижу после запуска моего пакета:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> ngen display EntityFramework Microsoft (R) CLR Native Image Generator - версия 4.7.3056.0 Авторские права (c) Корпорация Microsoft.Все права защищены.Ошибка: указанная сборка не установлена.

Я думаю, это очистило кеш?Но тогда ничего не установилось?И вопрос № 2, почему он удалил существующий?Вопрос № 3.Если я использую EF.dll из нескольких мест, я должен ngen каждый?Или только один в порядке?

Я посмотрел журналы NGen, похоже, что он делает все правильно при установке / удалении, но я не вижу ничего, используя "ngen display"

...