Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Exception 艾夫斯现在已经更新。_Exception_Google Api Dotnet Client - Fatal编程技术网

Exception 艾夫斯现在已经更新。

Exception 艾夫斯现在已经更新。,exception,google-api-dotnet-client,Exception,Google Api Dotnet Client,当我向我工作的公司发布使用Google.api.Drive.v2(v1.9.2.1860)的代码时,我遇到了这个问题。我给了他们exe和VisualStudio(和NuGet)生成的所有DLL,他们得到了错误。我从来没有犯过错误 修复很容易(一旦我弄明白了):当从Nuget安装api时,文件“assemblyname.exe.config”会自动生成在输出(aka,Debug或Release)文件夹中。您所要做的就是在运行程序集时将该文件包含在生成该程序集的文件夹之外的其他位置。以下是该文件的代

当我向我工作的公司发布使用Google.api.Drive.v2(v1.9.2.1860)的代码时,我遇到了这个问题。我给了他们exe和VisualStudio(和NuGet)生成的所有DLL,他们得到了错误。我从来没有犯过错误

修复很容易(一旦我弄明白了):当从Nuget安装api时,文件“assemblyname.exe.config”会自动生成在输出(aka,Debug或Release)文件夹中。您所要做的就是在运行程序集时将该文件包含在生成该程序集的文件夹之外的其他位置。以下是该文件的代码:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.2.29.0" newVersion="4.2.29.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

这基本上是Paul的“第二个”修复,但它是由包管理器自动生成的。我的问题是,当我尝试他的“第一个”修复程序时,我更新到了Google.api.Auth和Google.api.Core(v1.9.3),这让事情变得更糟。我会得到相同的错误,但现在是因为“Google.api.Core”的版本错误(尽管这可能也可以通过包含相同的.exe.config文件来解决)

希望这能帮助到别人,我知道这个帖子很老了,但它是一个快速的谷歌搜索让我找到的


编辑:忘了提及,这与针对.NET4.5的控制台应用程序有关。其中一些可能仍然与其他.NET目标或ASP.NET相关,但我不确定。您的里程数可能会有所不同。

在我的例子中,我引用了类库中的NuGet包。NuGet未能通知我们类库的app.config被完全忽略,我们必须手动将其内容复制到.exe的app.config中。

NuGet在Web.config中做了以下更改



我对2017年TFS的PowerShell脚本也有类似的问题。这些脚本称为.NET代码,用于在生成过程中执行自定义操作。我不断收到关于dll版本冲突的错误

我无法解决此问题,直到根据以下回答在AppDomain AssemblyResolve事件中实现了挂钩:


此解决方案强制进程使用当前路径中的DLL。我知道这有点像黑客攻击,但我读到在运行PowerShell时,您不能总是使用绑定重定向,这是我最初认为可以尝试的:

安装包Microsoft.Net.Http-版本2.2.22



此版本具有dll\packages\Microsoft.Net.Http.2.2.22\lib\net45\System.Net.Http.Extensions.dll

您好!你能在哪里解决这个问题?我也有同样的问题。非常感谢。虽然我没有使用GoogleAPI,但我在一个WebAPI项目中收到了相同的错误消息。重建项目解决了这个问题。nuget dll hell+1第一步的另一个明显例子足以解决这个问题,我只需指出Http。原语版本为“2.2.22.0”,示例代码显示为“4.0.10.0”。但是这是正确的答案,应该被接受Nuget的要点是不需要在Web.Config中手动绑定程序集。我已经怀念旧的谷歌API了。现在,如果我分发我的包装器DLL,我必须以某种方式通知他们对任何想要使用它的项目执行您的两个步骤。谢谢!这修复了一个错误“程序集“MyAssembly”中类型“MyClass”中的方法“MyMethod”没有实现。”该错误仅在从Google.API.Auth.Mvc4.dll中的类型继承时出现。我所要做的就是将app.config中已经存在的bindingRedirect复制到nunit配置文件中。使用Nuget更新(第一步)也为我解决了问题。安装后使用了什么名称空间?Thx当我把它特别添加到我的测试项目(我正在处理这个问题)中时,这对我来说很有效,不管它已经在主项目中被引用了,而主项目又被我的测试项目引用了。为此,我必须在我们的解决方案中更新nuget.exe-安装包Microsoft.Net.HttpNiether Microsoft.Net.Http或System.Net.Http nuget包包括System.Net.Http.Primitives.dll。不知道他们过去是否有过。我的搜索仍在继续。不确定您的旧版本范围值和新版本值,我的新版本值是:2.2.29.04.2.29,目标是.Net 4.5在我的情况下,创建的vesrion nuget指向4.2.29,但我机器上的版本实际上是4.2.13(GAC_MSIL\System.Net.Http.Primitives)。。。当我将重定向更改为4.2.13时,它开始工作了!不知道为什么会发生这种情况,但如果有人尝试了各种解决方法,但仍然无法使其工作,那么值得在您的GAC进行检查,看看您实际拥有的版本。@flyhorse1999,大约晚了一年,但请尝试我发布的解决方案。我的应用程序没有侦听绑定重定向,因为我需要删除一个属性。在哪里可以找到库的
app.config
?是否复制了它的所有内容?它通常位于项目文件夹的根目录中,并在编译期间复制到
bin\Foo.dll.config
。它们是XML格式,所以通常不能一字不差地复制和附加它。它们需要比较,缺失的部分需要单独复制。很抱歉,这是我唯一的修复方法。它解释了为什么它会在调试映射/调试模式下运行,而不是在已发布的文件夹中运行。有什么办法可以防止这种情况发生吗?大量的信息显示在那里,以便于获取,而普通用户并不容易访问。
<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
      <bindingRedirect oldVersion="0.0.0.0-4.0.10.0" newVersion="4.0.10.0"/>
    </dependentAssembly>
  </assemblyBinding>
</runtime>
<runtime xmlns="">
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.6.9.0" newVersion="2.6.9.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.6.9.0" newVersion="2.6.9.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.2.22.0" newVersion="2.2.22.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.1.10.0" newVersion="2.1.10.0" />
  </dependentAssembly>
</assemblyBinding>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.2.29.0" newVersion="4.2.29.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>