Отсутствует файл Microsoft.ServiceHub.HostLib.ресурсы.DLL после обновления VS2019 и Framework 4.7.2

#c# #asp.net-core #model-view-controller

#c# #asp.net-core #модель-представление-контроллер

Вопрос:

Во-первых, прошу прощения, если я не получу этот формат так хорошо, как я обычно вижу здесь вопросы, это мой первый пост здесь.

Возможно, мне придется вернуться в глубины истории этого, но изначально я надеялся, что может быть довольно простое решение, суть которого, похоже, заключается в отсутствии файла, а именно…

 Microsoft.ServiceHub.HostLib.resources.DLL
 

… поэтому я изначально публикую что-то вроде сводной версии проблемы. Я более чем рад расширить его, если потребуется.

Я обновил 5-летнее 6-проектное решение C # MVC3 на MVC5, Net Framework 4.7.2 с добавлением некоторого Net Core 2.2 (просто чтобы усугубить ситуацию), и после множества обновлений NuGet оно снова строится.

Когда я запускаю свое решение (подробнее об этом ниже), я получаю:

Возникло исключение

Сообщение помощника по управляемой отладке ‘BindingFailure’
= Помощник по управляемой отладке ‘BindingFailure’: ‘Сборка с отображаемым именем ‘Microsoft.DiaSymReader.Не удалось загрузить файл Native.amd64 в контексте привязки «LoadFrom» домена приложения с идентификатором 2. Причиной сбоя было: System.Исключение BadImageFormatException: не удалось загрузить файл или сборку ‘Microsoft.DiaSymReader.Native.amd64’ или одна из его зависимостей. Ожидалось, что модуль будет содержать манифест сборки. ‘

Журнал загрузки FUSLOGVW:

 *** Assembly Binder Log Entry  (17/04/2019 @ 17:39:13) ***

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  C:WindowsMicrosoft.NETFrameworkv4.0.30319clr.dll
Running under executable  C:Program Files (x86)Microsoft Visual Studio2019CommunityCommon7ServiceHubHostsServiceHub.Host.CLR.x86ServiceHub.Host.CLR.x86.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: Where-ref bind. Location = C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/ServiceHub/Hosts/ServiceHub.Host.CLR.x86/en-US/Microsoft.ServiceHub.HostLib.resources.DLL
LOG: Appbase = file:///C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/ServiceHub/Hosts/ServiceHub.Host.CLR.x86/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = ServiceHub.Host.CLR.x86.exe

Calling assembly : (Unknown).

LOG: This bind starts in LoadFrom load context.
WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load().
LOG: Using application configuration file: C:Program Files (x86)Microsoft Visual Studio2019CommunityCommon7ServiceHubHostsServiceHub.Host.CLR.x86ServiceHub.Host.CLR.x86.exe.Config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:WindowsMicrosoft.NETFrameworkv4.0.30319configmachine.config.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/ServiceHub/Hosts/ServiceHub.Host.CLR.x86/en-US/Microsoft.ServiceHub.HostLib.resources.DLL.
LOG: All probing URLs attempted and failed.
 

Честно говоря, я не совсем уверен, что журнал FUSLOGVW связан с сообщением об исключении, но это то, что говорится в журнале, когда VS прерывается, поэтому я работаю на основе того, что он делает, но я никогда раньше не использовал FUSLOGVW — я нашел ссылку на него в соответствующем вопросе здесь.

Предыстория / что я пробовал

Это с набором сборки для «любого процессора».

Я попытался удалить и переустановить практически все ссылки в проектах с помощью NuGet и восстановить мою установку VS2019, но я вернулся к той же ошибке.

Я уже пару дней ищу похожие проблемы здесь и в других местах, поэтому я уверен, что решения этой конкретной проблемы уже нет.

Глядя на местоположение в отчете FUSLOGVW, файл:

 "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/ServiceHub/Hosts/ServiceHub.Host.CLR.x86/en-US/Microsoft.ServiceHub.HostLib.resources.DLL"
 

…не существует, папка en-US, в которой она должна находиться, также не существует, именно тогда я попробовал восстановление VS2019, надеясь, что это может [повторно] создать его.

Файл .config, упомянутый в журнале:

 C:Program Files (x86)Microsoft Visual Studio2019CommunityCommon7ServiceHubHostsServiceHub.Host.CLR.x86ServiceHub.Host.CLR.x86.exe.Config
 

…содержит следующее:

ServiceHub.Host.CLR.x86.exe.Config

 <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
    <relativeBindForResources enabled="true" />
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <!--
           Add probing paths to Extension Manager and MS.VS.Settings assemblies.
           The probing paths are relative to the app base, and it is in VSCommon7 folder, 3 levels up from the service location.
      -->
      <probing privatePath="IDE;IDEPrivateAssemblies;IDEPublicAssemblies;"/>

      <!-- Redirect ServiceHub dependencies to VS versions -->
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
        <bindingRedirect oldVersion="4.5.0.0-9.0.0.1" newVersion="9.0.0.1"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
 

Другие соломинки, за которые я пытался ухватиться

Я повторил переустановку Newtonsoft.Json, поскольку это была единственная сборка, упомянутая в .config выше, но сейчас я твердо держусь за соломинку и не вижу пути к прогрессу.

Может кто-нибудь, пожалуйста, предложить путь вперед? — большое спасибо за ваш интерес. Я нахожусь в азиатском времени, поэтому могу не сразу ответить к тому времени, когда вы, западные люди, проснетесь 🙂

Комментарии:

1. Я знаю, что это не входит в намерения комментариев, но я думаю, что вы заслуживаете внимания. Такой хорошо сформулированный вопрос! Добро пожаловать в SO.

2. Спасибо! — поскольку это мой первый пост после, по сути, халявы на этом невероятно полезном сайте в течение многих лет, я хотел убедиться, что не придаю этому слишком большого значения и не трачу чье-либо время, не давая достаточно подробностей, но при этом не превращая это в бессвязную эпопею. Сказав это, я буду разочарован, если меня за что-нибудь не отругают… конечно, это традиционно ! ?!? — Иначе я бы не чувствовал, что присоединился должным образом 😉 — даже если мне просто говорят, что я не должен использовать этот комментарий, чтобы сказать спасибо.

3. Я бы попробовал с VS 2017. VS2019 только что вышел и, несомненно, будет содержать ряд проблем.