C# `bindingRedirect`不';行不通

C# `bindingRedirect`不';行不通,c#,nuget,app-config,C#,Nuget,App Config,我有一个问题与一些Nuget依赖。 这个异常是抛出的 Impossible to load the file or assembly 'System.IO.Abstractions, Version=2.1.0.199, Culture=neutral, PublicKeyToken=96bf224d23c43e59' File not found 我的项目需要一个包A和BA要求系统IO.Abstractions>=2.1.0.199和B要求系统IO.Abstractions>=2.1.0.2

我有一个问题与一些Nuget依赖。 这个异常是抛出的

Impossible to load the file or assembly 'System.IO.Abstractions, Version=2.1.0.199, Culture=neutral, PublicKeyToken=96bf224d23c43e59'
File not found
我的项目需要一个包
A
B
<代码>A要求
系统IO.Abstractions>=2.1.0.199
B
要求
系统IO.Abstractions>=2.1.0.208
。因此,依赖项求解器下载版本
208
,并将
bindingRedirect
添加到我的
app.config

我的
app.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.IO.Abstractions" publicKeyToken="96bf224d23c43e59" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-2.1.0.208" newVersion="2.1.0.208" />
        </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
好的,我找到了解决办法。 我的例子是C语言DDL是C++软件的一个插件(动态加载) 配置文件的名称应为软件名(softwarename.exe.config),并放在可执行文件旁边。不在工作目录中,不在dll中。如果在同一时间部署多个加载项,则可能会产生问题。
非常感谢@HansPassant的帮助。

使用Fuslogvw.exe诊断程序集解析问题。当您需要更多帮助时,将跟踪复制/粘贴到您的问题中。@HansPassant日志已添加。当我发现如何用英文“aucun fichier de configuration de l'application n'aététrouvé”时,我将用英文重新发布。我高中的法语说它没有使用你创建的app.config文件,这不好。确保app.exe.config文件与app.exe位于同一目录中。我们无法使用Assembly.LoadFrom()查看您的代码。顺便说一句,这可能是相关的。我看到了,但事实上我只是在这里发布的问题。我的主要C语言程序集是用C++程序动态加载的。因此,我尝试将myMainAssembly.dll.config放在myMainAssembly.dll旁边的工作目录下的可执行文件夹中。但两者似乎都没有加载。你知道我应该把它放在哪里,或者我如何强制该文件的路径吗?说某个东西不起作用是一个巨大的语句xD
*** Entrée du journal Binder d'assembly  (23/07/2018 @ 10:06:28) ***

L'opération a réussi.
Résultat de liaison : hr = 0x0. L'opération a réussi.

Gestionnaire des assemblys chargé à partir de :  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Exécution sous l'exécutable  J:\sources\myApp\Output\Debug_msvc2015_x64\app.exe
--- Un journal des erreurs détaillé suit. 

=== Informations d'état de liaison préalable ===
JRN : DisplayName = System.IO.Abstractions, Version=2.1.0.208, Culture=neutral, PublicKeyToken=96bf224d23c43e59
 (Fully-specified)
JRN : Appbase = file:///J:/sources/myApp/Output/Debug_msvc2015_x64/
JRN : PrivatePath initial = NULL
JRN : base dynamique = NULL
JRN : base de cache = NULL
JRN : AppName = app.exe
Assembly appelant : myDll, Version=2019.0.0.51, Culture=neutral, PublicKeyToken=null.
===
JRN : cette liaison démarre dans le contexte de chargement de LoadFrom.
AVT : l'image native ne sera pas détectée dans le contexte LoadFrom. Elle sera détectée uniquement dans le contexte de chargement par défaut, comme pour Assembly.Load().
JRN : aucun fichier de configuration de l'application n'a été trouvé.
JRN : utilisation du fichier de configuration d'hôte : 
JRN : utilisation du fichier de configuration de l'ordinateur à partir de C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
JRN : référence post-stratégie : System.IO.Abstractions, Version=2.1.0.208, Culture=neutral, PublicKeyToken=96bf224d23c43e59
JRN : échec de la recherche dans le GAC.
JRN : tentative de téléchargement de la nouvelle URL file:///J:/sources/myApp/Output/Debug_msvc2015_x64/System.IO.Abstractions.DLL.
JRN : tentative de téléchargement de la nouvelle URL file:///J:/sources/myApp/Output/Debug_msvc2015_x64/System.IO.Abstractions/System.IO.Abstractions.DLL.
JRN : tentative de téléchargement de la nouvelle URL file:///J:/sources/myApp/Output/Debug_msvc2015_x64/System.IO.Abstractions.EXE.
JRN : tentative de téléchargement de la nouvelle URL file:///J:/sources/myApp/Output/Debug_msvc2015_x64/System.IO.Abstractions/System.IO.Abstractions.EXE.
JRN : tentative de téléchargement de la nouvelle URL file:///J:/sources/myApp/EwAddIns/myDll/bin/x64/Debug/System.IO.Abstractions.DLL.
JRN : le téléchargement de l'assembly a réussi. Tentative d'installation du fichier : J:\sources\myApp\EwAddIns\myDll\bin\x64\Debug\System.IO.Abstractions.dll
JRN : entrée dans la phase d'installation à exécution à partir de la source.
JRN : le nom de l'assembly est : System.IO.Abstractions, Version=2.1.0.208, Culture=neutral, PublicKeyToken=96bf224d23c43e59
JRN : le code base de liaison Where-ref ne correspond pas à ce qui est trouvé dans le contexte par défaut. Conservez le résultat dans le contexte LoadFrom.
JRN : la liaison a réussi. Elle retourne un assembly à partir de J:\sources\myApp\EwAddIns\myDll\bin\x64\Debug\System.IO.Abstractions.dll.
JRN : l'assembly est chargé dans le contexte de chargement LoadFrom.


*** Entrée du journal Binder d'assembly  (23/07/2018 @ 10:06:28) ***

L'opération a échoué.
Résultat de liaison : hr = 0x80070002. Le fichier spécifié est introuvable.

Gestionnaire des assemblys chargé à partir de :  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Exécution sous l'exécutable  J:\sources\myApp\Output\Debug_msvc2015_x64\app.exe
--- Un journal des erreurs détaillé suit. 

=== Informations d'état de liaison préalable ===
JRN : DisplayName = System.IO.Abstractions, Version=2.1.0.199, Culture=neutral, PublicKeyToken=96bf224d23c43e59
 (Fully-specified)
JRN : Appbase = file:///J:/sources/myApp/Output/Debug_msvc2015_x64/
JRN : PrivatePath initial = NULL
JRN : base dynamique = NULL
JRN : base de cache = NULL
JRN : AppName = app.exe
Assembly appelant : UnifiedLogin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===
JRN : cette liaison démarre dans le contexte de chargement de LoadFrom.
AVT : l'image native ne sera pas détectée dans le contexte LoadFrom. Elle sera détectée uniquement dans le contexte de chargement par défaut, comme pour Assembly.Load().
JRN : aucun fichier de configuration de l'application n'a été trouvé.
JRN : utilisation du fichier de configuration d'hôte : 
JRN : utilisation du fichier de configuration de l'ordinateur à partir de C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
JRN : référence post-stratégie : System.IO.Abstractions, Version=2.1.0.199, Culture=neutral, PublicKeyToken=96bf224d23c43e59
JRN : échec de la recherche dans le GAC.
JRN : tentative de téléchargement de la nouvelle URL file:///J:/sources/myApp/Output/Debug_msvc2015_x64/System.IO.Abstractions.DLL.
JRN : tentative de téléchargement de la nouvelle URL file:///J:/sources/myApp/Output/Debug_msvc2015_x64/System.IO.Abstractions/System.IO.Abstractions.DLL.
JRN : tentative de téléchargement de la nouvelle URL file:///J:/sources/myApp/Output/Debug_msvc2015_x64/System.IO.Abstractions.EXE.
JRN : tentative de téléchargement de la nouvelle URL file:///J:/sources/myApp/Output/Debug_msvc2015_x64/System.IO.Abstractions/System.IO.Abstractions.EXE.
JRN : tentative de téléchargement de la nouvelle URL file:///J:/sources/myApp/EwAddIns/myDll/bin/x64/Debug/System.IO.Abstractions.DLL.
JRN : le téléchargement de l'assembly a réussi. Tentative d'installation du fichier : J:\sources\myApp\EwAddIns\myDll\bin\x64\Debug\System.IO.Abstractions.dll
JRN : entrée dans la phase d'installation à exécution à partir de la source.
JRN : le nom de l'assembly est : System.IO.Abstractions, Version=2.1.0.208, Culture=neutral, PublicKeyToken=96bf224d23c43e59
AVT : la comparaison du nom de l'assembly a entraîné l'incompatibilité : Numéro de révision
ERR : la référence d'assembly ne correspond pas à la définition d'assembly trouvée.
ERR : la phase d'installation à exécution à partir de la source a échoué avec hr = 0x80131040.
JRN : tentative de téléchargement de la nouvelle URL file:///J:/sources/myApp/EwAddIns/myDll/bin/x64/Debug/System.IO.Abstractions/System.IO.Abstractions.DLL.
JRN : tentative de téléchargement de la nouvelle URL file:///J:/sources/myApp/EwAddIns/myDll/bin/x64/Debug/System.IO.Abstractions.EXE.
JRN : tentative de téléchargement de la nouvelle URL file:///J:/sources/myApp/EwAddIns/myDll/bin/x64/Debug/System.IO.Abstractions/System.IO.Abstractions.EXE.
JRN : toutes les URL recherchées ont été tentées et ont échoué.