首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用搜索GAC

禁用搜索GAC
EN

Stack Overflow用户
提问于 2011-03-10 16:30:52
回答 3查看 2.5K关注 0票数 6

我试图将FSharp PowerPack用于ArgParser库,但是在我的机器上遇到了一些严重的问题,在这些问题上,它似乎从GAC加载了错误的FSharp.Core.dll版本,从而导致了ArgParser的加载失败。理想情况下,我会解决这个问题(因为它可以在我同事的计算机上工作),但是我尝试过从系统中卸载和重新安装FSharp二进制文件的各种组合,但都没有效果。

由于我不太喜欢这样的事实,我不能只是删除已知的正确的DLL在可执行目录中,因为GAC,如果有任何方式只是禁用搜索在GAC,我会很高兴这样做。

我知道这个解决方案有点麻烦,但现在我只需要让它加载和工作,我会尝试任何事情。

编辑

更多的信息。这是该项目的负载输出。

代码语言:javascript
复制
'PowerPackTest.exe' (Managed (v4.0.30319)): Loaded 'C:\WINNT\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'PowerPackTest.exe' (Managed (v4.0.30319)): Loaded 'C:\Projects\PowerPackTest\PowerPackTest\bin\Debug\PowerPackTest.exe', Symbols loaded.
'PowerPackTest.exe' (Managed (v4.0.30319)): Loaded 'C:\WINNT\Microsoft.Net\assembly\GAC_MSIL\FSharp.Core\v4.0_4.0.0.0__b03f5f7f11d50a3a\FSharp.Core.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'PowerPackTest.exe' (Managed (v4.0.30319)): Loaded 'C:\WINNT\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'PowerPackTest.exe' (Managed (v4.0.30319)): Loaded 'C:\WINNT\assembly\GAC_MSIL\FSharp.PowerPack\2.0.0.0__a19089b1c74d0809\FSharp.PowerPack.dll'
'PowerPackTest.exe' (Managed (v4.0.30319)): Loaded 'C:\WINNT\assembly\GAC_MSIL\FSharp.Core\2.0.0.0__b03f5f7f11d50a3a\FSharp.Core.dll'

如您所见,它首先加载FSharp.Core v4,然后在最后一秒加载v2。这种事不会发生在我同事的机器上。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-10 17:13:04

预构建的PowerPack二进制文件是针对CLR v2编译的,它们还引用了FSharp.Core v2。这可能就是造成这个问题的原因。我真的不明白为什么.NET 4版本的PowerPack不作为下载(或在NuGet!)但你可以围绕这两种方式:

您可以设置一个assembly binding redirect,但我不知道这是否适用于fsi.exe

或者可以将源代码下载到F# PowerPack并编译自己的.NET 4版本。这很容易。

票数 5
EN

Stack Overflow用户

发布于 2011-03-10 16:38:31

GAC总是获胜--这是一个安全特性。如果您有不同版本的FSharp.Core,为什么不把它也放到GAC中,或者在app.config中使用重定向绑定来强制加载更新的版本,或者根据新版本重新构建应用程序(可能不可能)?

-Oisin

票数 0
EN

Stack Overflow用户

发布于 2011-03-10 17:53:05

我刚刚查看了一个.net 4.0项目,其中我正在使用ArgParser,我引用的是FSharp.Core和FSharp.Powerpack,以及在app.config中我有重定向设置:

代码语言:javascript
复制
    <startup useLegacyV2RuntimeActivationPolicy="true">
       <supportedRuntime version="v4.0"/>
    </startup>

hth

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5262714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档