gpt4 book ai didi

asp.net-mvc-4 - 派生类型必须与基类型的安全可访问性相匹配,或者难以访问

转载 作者:行者123 更新时间:2023-12-02 09:06:21 31 4
gpt4 key购买 nike

几天前,我按照这些 instructions 将我的 MVC 4 应用程序升级到了 MVC 5现在我收到以下错误。我使用 Nuget (v4.3.3.13295) 将 DotNetOpenAuth 更新到最新位,但它仍然抛出此错误。

如何解决这个问题?

Inheritance security rules violated by type: 'DotNetOpenAuth.Messaging.OutgoingWebResponseActionResult'. Derived types must either match the security accessibility of the base type or be less accessible.

最佳答案

终于解决了这个问题。结果我需要对 DotNetOpenAuth 的源代码进行一些更改并重新编译它。这一点都不容易,因为从 github 下载源代码后无法编译。我不得不花费约 3 天的时间尝试各种事情,并学习将构建系统融入 DotNetOpenAuth 的项目文件中,直到我最终完成编译。看来这个项目的作者已经放弃了。查看有关此问题的更多信息 here .

  1. 使用以下命令行下载 4.3 代码库:git clone -b v4.3 https://github.com/DotNetOpenAuth/DotNetOpenAuth.git
  2. 编辑/src/version.txt并将其更改为4.4.0。这使得该版本高于官方 Nuget 版本,因此安装 Nuget 包时不会尝试从其存储库安装旧版本的 DotNetOpenAuth 程序集。
  3. /src/ 目录下的所有 AssemblyInfo.cs 文件中删除以下字符串的所有实例。

    [程序集:AllowPartiallyTrustedCallers]

  4. 我不得不在两个项目中修改 Microsoft.Contracts 引用,并将其指向 /tools/Contracts/PublicAssemblies/v3.5/Microsoft.Contracts.dll ,然后使用 using 别名 从此程序集中获取类以正确解析。一些 Requires.NotNull() 行拒绝编译,所以我只是将它们注释掉......这就是生活..

  5. 运行以下命令以跳过对这些程序集的验证:sn.exe -Vr *,2780ccd10d57b246

构建程序集后,我引用了这些程序集,从 Nuget 重新添加了 Microsoft.AspNet.WebPages.OAuth 3.0,重新构建了我的解决方案,最后我的应用程序在 MVC 5 上启动并运行。

关于asp.net-mvc-4 - 派生类型必须与基类型的安全可访问性相匹配,或者难以访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20150142/

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