Где находится конфигурация фреймворка для связывания перенаправлений? - PullRequest
0 голосов
/ 09 октября 2018

Мой ASP.NET MVC веб-сервер потребляет System.Security.Cryptography.Algorithms.dll.При сборке dll находится в:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.1\Facades.

Во время выполнения dll разрешается в:

C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Security.Cryptography.Algorithms\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Security.Cryptography.Algorithms.dll.

Это то, что fuslogvw показывает:

...
LOG: Assembly download was successful. Attempting setup of file: path\to\bin\System.Security.Cryptography.Algorithms.dll
LOG: Entering download cache setup phase.
LOG: Assembly Name is: System.Security.Cryptography.Algorithms, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
LOG: A partially-specified assembly bind succeeded from the application directory. Need to re-apply policy.
LOG: Using application configuration file: path\to\web.config
LOG: Using host configuration file: C:\Users\xxx\Documents\IISExpress\config\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Version redirect found in framework config: 4.2.2.0 redirected to 4.0.0.0.
LOG: Post-policy reference: System.Security.Cryptography.Algorithms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
LOG: Binding succeeds. Returns assembly from C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Security.Cryptography.Algorithms\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Security.Cryptography.Algorithms.dll.
LOG: Assembly is loaded in default load context.

Меня особенно интересует строка LOG: Version redirect found in framework config: 4.2.2.0 redirected to 4.0.0.0.

Вопрос:

Где этофреймворк, упомянутый выше?Ни один из трех файлов, упомянутых в журнале (web.config, machine.config, aspnet.config), не содержит директивы перенаправления привязки для System.Security.Cryptography.Algorithms.dll, так где же она тогда?

1 Ответ

0 голосов
/ 10 октября 2018

Строка, которую вы видите, идет из таблицы объединения, которая находится внутри среды выполнения.

Среда выполнения обладает специальными знаниями о нескольких сборках, и для них применяется специальное перенаправление привязки , если не указаны указанные пользователем перенаправления привязки (в указанных вами местах).

...