gpt4 book ai didi

c# - 避免在应用程序中使用 GAC

转载 作者:行者123 更新时间:2023-12-02 01:10:54 30 4
gpt4 key购买 nike

<分区>

所以我有一些用户遇到这个错误

System.MissingMethodException: Method not found: 'Void System.Net.Http.Headers.HttpHeaders.AddWithoutValidation(System.String, System.Collections.Generic.IEnumerable`1<System.String>)'.
at System.Net.Http.HttpHeaderExtensions.CopyTo(HttpContentHeaders fromHeaders, HttpContentHeaders toHeaders)
at System.Net.Http.ObjectContent..ctor(Type type, HttpContent content)
at System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent content)
at Octgn.Site.Api.ApiClient.Login(String username, String password)

我无法在本地重现此错误,但一些使用我的 WPF 应用程序的人最终会遇到此错误。在对日志进行一些挖掘之后,我看到了这一点

LOADED ASSEMBLY: System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Net.Http\v4.0_2.0.0.0__b03f5f7f11d50a3a\System.Net.Http.dll

我已经尝试在 csproj 中更改它

<Reference Include="System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Net.Http.2.0.20710.0\lib\net40\System.Net.Http.dll</HintPath>
</Reference>

对此

<Reference Include="System.Net.Http">
<HintPath>..\..\packages\Microsoft.Net.Http.2.0.20710.0\lib\net40\System.Net.Http.dll</HintPath>
</Reference>

我也试过将它添加到 app.config 文件中

    <dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0 - 4.0.0.0" newVersion="2.0.0.0"/>
</dependentAssembly>

这些东西似乎都不想加载与我的项目的 exe 位于同一目录中的 dll。我在本地有 dll,但似乎无法避开 GAC。这是一个每天有数百人使用的产品,所以我希望找到一些不需要用户最后在他们的机器上手动执行某些操作的解决方案。

我也考虑过使用 Assembly.Load 或类似的东西在加载时抢先加载代码中的 dll,但我不确定这是否会产生影响,我认为会有更优雅的解决方案。

好的,那么如果我使用 ilmerge http://www.microsoft.com/en-us/download/details.aspx?id=17630 将所有这些新程序集合并到一个新程序集中呢? ?或者 GAC 是否使用 namespace 等?好吧,我正在尝试...当我让遇到问题的人对其进行测试时,我会报告它是否有效。

有什么想法吗?

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com