gpt4 book ai didi

asp.net - 运行 ASP.NET Web 应用程序时找不到 System.Runtime 4.1.0.0

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

我使用以下projects.json创建了一个可移植类库

{
"supports": {},
"dependencies": {
"Microsoft.CSharp": "4.0.1",
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"NETStandard.Library": "1.6.0",
"System.Runtime.Serialization.Primitives": "4.1.1",
"System.Runtime": "4.1.0"
},
"frameworks": {
"net451": {},
"netstandard1.5": {}
}
}

但是,当从 ASP.NET 应用程序(不是 ASP.NET Core)引用此内容时,我收到以下运行时异常:

Could not load file or assembly 'System.Runtime, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

如果我从控制台应用程序引用它,它运行时不会出现问题。

有什么想法吗?

编辑

在这里找到了解决方案:https://stackoverflow.com/a/37639003/691045

最佳答案

正如更新中提到的,此问题的一个解决方案是将 PCL 打包为 nuget 包。然而,这与当使用 PCL 瞄准 .Net Standard 时试图做的事情相反。此外,包解决方案的调试也变得很麻烦。

对我来说,当跨越 csproj 到 xproj 边界时,它似乎是 Net Core Tools Preview 的一个错误。如果通过 nuget 安装软件包来证明这一点:

Install-Package System.Runtime

System.Runtimeproject.json 中看起来正确,为 "System.Runtime": "4.1.0"。查看引用资料,您会发现该版本被列为 System.Runtime (4.0.20)。而且实际的 bin 绝对引用实际的 dll。

只需将 .Net 4.6.2 dll 从 nuget 缓存复制到 bin 即可解决问题。这允许直接引用,而无需打包您的 PCL。

希望当我们达到 Net Standard 2.0 并且工具更加成熟时,此类事情将成为过去。

更新:如果您使用最新的 .Net Core 版本 (1.1) 和二进制文件,此问题已修复。工具预览仍为 1.0.1,因此您必须确保安装 1.1 的二进制文件。

关于asp.net - 运行 ASP.NET Web 应用程序时找不到 System.Runtime 4.1.0.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38310518/

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