更新.Net版本导致System assembly not found问题

Posted

技术标签:

【中文标题】更新.Net版本导致System assembly not found问题【英文标题】:Update .Net version caused System assembly not found problem 【发布时间】:2020-04-08 15:35:54 【问题描述】:

我正在尝试在 CoreXT 框架内将我的 .NET 版本更新到 4.8。

但是在我更新之后 <package id="NET_Framework_48_TargetingPack" version="4.8.3761" allMacros="true" /> 在 corex.config 文件中,

找不到所有系统相关的程序集。比如System、System.Data等等。

请问我是否错过了其他要更新的参考版本?或者我怎样才能成功设置系统组装位置? 谢谢。

【问题讨论】:

现在有什么进展吗?如果它对你有帮助,你可以接受它作为答案。 【参考方案1】:

如果您将项目重新定位到不同版本的 .NET Framework,在某些情况下您的引用可能无法正确解析。对程序集的显式完全限定引用通常会导致此问题,但您可以通过删除无法解决的引用然后将它们添加回项目来解决此问题。作为替代方案,您可以编辑项目文件以替换引用。参考这篇文章Troubleshoot .NET Framework targeting errors。

首先,您删除以下形式的引用:

<Reference Include="System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />

然后你用简单的形式替换它们:

<Reference Include="System.ServiceModel" />

注意:关闭并重新打开项目后,您还应该重新构建它以确保所有引用都正确解析。

【讨论】:

以上是关于更新.Net版本导致System assembly not found问题的主要内容,如果未能解决你的问题,请参考以下文章

.net 4.6.2连接redis报The assembly for System.Buffers and System.IO.Pipelines could not be loaded问题

反射簡單應用例子[轉]

Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.Se

Could not load file or assembly 'System.Core, Version=2.0.5.0

C#.NET提供了哪些类型来实现反射

x360ce打开显示未能加载文件或程序集怎么解决