我之前在迁移项目时也遇到过类似的问题。对于不匹配的项目,Visual Studio 可能会出现很多错误行为。
简单答案:您需要将项目更改为 MSBuild/csproj 格式。
首先,如果您尝试在解决方案中使用 .NET Core,请在 Visual Studio 中右键单击您的项目,然后如果你没有看到Edit xxxxxx.csproj
那么您可能会遇到与上面报告的问题类似的问题。
基本上,.NET Core 项目模板在编译项目时使用不同的工具。
下面的解决方案是解决几乎所有与尝试以 .NET Core 为目标但希望使用其他框架的库的项目有关的问题的通用方法。 (到目前为止)还没有一个好的工具来解决这个问题,所以你将不得不进入手动模式。
让我们开始吧。
解决方案非常简单(但有点乏味)。
步骤 1:使用新的 MSBuild/csproj 格式创建一个新项目
创建一个新项目,并选择“.NET Core”。
在几乎所有情况下,您可能希望避免使用 ASP.NET Core Web 应用程序模板,但这需要另外讨论。
第 2 步:瞄准正确的框架
右键单击该项目并选择Edit xxxxxx.csproj
<PropertyGroup>
<TargetFramework>net452</TargetFramework>
<!--you will also probably want to note that you need these for a console app -->
<OutputType>Exe</OutputType>
<RuntimeIdentifier>win7-x64</RuntimeIdentifier>
</PropertyGroup>
选择您想要定位的框架,并确保它受支持(这里有一个表格)。
我用过net452
以上面的代码片段为例。您可以了解更多有关在此命名 https://learn.microsoft.com/en-us/nuget/schema/target-frameworks.
步骤 3. 对所有项目重复此操作。
您必须对解决方案中的每个项目执行此操作,以防止 Visual Studio 出现意外行为。
网上关于如何让 ASP.NET Core 与旧框架良好配合的信息确实不多。希望这会对您有所帮助。我希望我自己能早点得到这个建议。