C# 在.net核心控制台应用程序中使用.net类库时,项目生成失败

C# 在.net核心控制台应用程序中使用.net类库时,项目生成失败,c#,.net,visual-studio,.net-core,asp.net-core-3.1,C#,.net,Visual Studio,.net Core,Asp.net Core 3.1,我有一个.NETCore3.1控制台应用程序,它引用了作为引用添加的类库项目FxCore。 csproj类库有net45;net451;net452;net46;net461;net462;net47;net471;net472我已尝试将其更改为net45;,但仍然得到同样的错误 我收到以下错误。我已尝试清理->重建,重新打开visual studio 2019版本16.5.2 1> ---构建已启动:项目:FxCore,配置:调试任何CPU ---1>J:\Test\core\fx core\

我有一个.NETCore3.1控制台应用程序,它引用了作为引用添加的类库项目FxCore。 csproj类库有net45;net451;net452;net46;net461;net462;net47;net471;net472我已尝试将其更改为net45;,但仍然得到同样的错误

我收到以下错误。我已尝试清理->重建,重新打开visual studio 2019版本16.5.2

1> ---构建已启动:项目:FxCore,配置:调试任何CPU ---1>J:\Test\core\fx core\FxCore.csproj3,3:警告MSB4011:C:\Program Files x86\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Microsoft.Common.props 无法再次导入。它已在C:\程序中导入 Files\dotnet\sdk\3.1.201\Sdks\Microsoft.NET.sdk\sdk\sdk.props 40,3。 这很可能是生成编写错误。这是随后的导入 将被忽略。1> C:\程序 Files\dotnet\sdk\3.1.201\Sdks\Microsoft.NET.sdk\sdk\sdk.targets37,3: 警告MSB4011:C:\Program Files x86\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\Microsoft.CSharp.targets 无法再次导入。它已经在美国进口了 J:\Test\core\fx core\FxCore.csproj 120,3。这很可能是一个错误 生成编写错误。此后续导入将被忽略。 1> C:\Program Files x86\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets2081,5: 警告MSB3245:未能解析此引用。找不到 程序集FXEntity,版本=1.0.1.12,区域性=中性, processorArchitecture=MSIL。检查以确保该程序集存在于计算机上 磁盘如果您的代码需要此引用,您可以 编译错误。1> FxCore-> J:\Test\core\fx core\bin\Debug\FxCore.dll 1> J:\Test\core\fx core\FxCore.csproj3,3:警告MSB4011: C:\Program Files x86\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Microsoft.Common.props 无法再次导入。它已在C:\程序中导入 Files\dotnet\sdk\3.1.201\Sdks\Microsoft.NET.sdk\sdk\sdk.props 40,3。 这很可能是生成编写错误。这是随后的导入 将被忽略。1> C:\程序 Files\dotnet\sdk\3.1.201\Sdks\Microsoft.NET.sdk\sdk\sdk.targets37,3: 警告MSB4011:C:\Program Files x86\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\Microsoft.CSharp.targets 无法再次导入。它已经在美国进口了 J:\Test\core\fx core\FxCore.csproj 120,3。这很可能是一个错误 生成编写错误。此后续导入将被忽略。 1> J:\Test\core\fx core\FxCore.csproj3,3:警告MSB4011: C:\Program Files x86\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Microsoft.Common.props 无法再次导入。它已在C:\程序中导入 Files\dotnet\sdk\3.1.201\Sdks\Microsoft.NET.sdk\sdk\sdk.props 40,3。 这很可能是生成编写错误。这是随后的导入 将被忽略。1> C:\程序 Files\dotnet\sdk\3.1.201\Sdks\Microsoft.NET.sdk\sdk\sdk.targets37,3: 警告MSB4011:C:\Program Files x86\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\Microsoft.CSharp.targets 无法再次导入。它已经在美国进口了 J:\Test\core\fx core\FxCore.csproj 120,3。这很可能是一个错误 生成编写错误。此后续导入将被忽略。 1> J:\Test\core\fx core\FxCore.csproj:警告NU1603:FxCore 在Microsoft.Practices.ServiceLocation>=1.3.0上,但 找不到Microsoft.Practices.ServiceLocation 1.3.0。一 Microsoft.Practices.ServiceLocation 1.4.11的近似最佳匹配 解决了。1> 完成构建项目FxCore.csproj。1> 建成 FxCore.csproj项目。2> ---已开始构建:项目: CoreConsoleApp,配置:调试任何CPU--- 2> J:\Test\core\fx core\FxCore.csproj3,3:警告MSB4011: C:\Program Files x86\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Microsoft.Common.props 无法再次导入。它已在C:\程序中导入 Files\dotnet\sdk\3.1.201\Sdks\Microsoft.NET.sdk\sdk\sdk.props 40,3。 这很可能是生成编写错误。这是随后的导入 将被忽略。2> C:\程序 Files\dotnet\sdk\3.1.201\Sdks\Microsoft.NET.sdk\sdk\sdk.targets37,3: 警告MSB4011:C:\Program Files x86\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\Microsoft.CSharp.targets 无法再次导入。它已经在美国进口了 J:\Test\core\fx core\FxCore.csproj 120,3。这很可能是一个错误 生成编写错误。此后续导入将被忽略。 2> C:\Program Files x86\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets1655,5: 警告NU1702:ProjectReference'J:\Test\core\fx core\FxCore.csproj' 已使用“.NETFramework,Version=v4.6.1”而不是 项目目标框架'.NETCoreApp,版本=v3.1'。这个项目可能 与您的项目不完全兼容。 2> J:\Test\core\CoreConsoleApp\Program.cs2,7,2,9:错误CS0246:错误 找不到类型或命名空间名称“FX”是 你错过了一场比赛 使用指令还是程序集引用? 2> J:\Test\core\CoreConsoleApp\Program.cs7,24,7,32:错误CS0246:错误 找不到类型或命名空间名称“FxCommon”,是否缺少 使用指令还是程序集引用?2> 完成建筑工程 CoreConsoleApp.csproj-失败。 =======生成:1成功,1失败,0最新,0跳过==========

但是在Program.cs中,我能够使用代码,IntelliSense不会显示任何错误

using System;
using FX.Core;
namespace CoreConsoleApp
{
    class Program
    {
        private static FxCommon _fxCommon = new FxCommon();
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            _fxCommon.Logger.LogWrite("hello");
        }
    }
}
由于此原因,我无法运行console应用程序,请帮助。

.NET Core不使用.NET Framework NET目标;它可以使用netstandard*和netcoreapp*

所以,;您的FxCore需要以.NET Standard或.NET Core中的一个为目标/多目标

在选择目标/多目标方面:

target netstandard*-如果在实现中不需要任何特定于框架的内容 多目标netcoreapp*和netstandard*-如果您想在netcoreapp*功能可用时使用这些功能,或者使用底层通用实现 多目标netcoreapp*和net-如果实现完全特定于平台,并且不可能实现通用实现 其中*/是您选择的版本-目前可能是netstandard2.1、netcoreapp3.1和net472/net48

;它可以使用netstandard*和netcoreapp*

所以,;您的FxCore需要以.NET Standard或.NET Core中的一个为目标/多目标

在选择目标/多目标方面:

target netstandard*-如果在实现中不需要任何特定于框架的内容 多目标netcoreapp*和netstandard*-如果您想在netcoreapp*功能可用时使用这些功能,或者使用底层通用实现 多目标netcoreapp*和net-如果实现完全特定于平台,并且不可能实现通用实现
其中*/是您选择的版本-目前可能是netstandard2.1、netcoreapp3.1和net472/net48

我已通过从类库csproj文件中删除以下行解决了此问题

  <PropertyGroup>
    <TargetFrameworks>net45;net451;net452;net46;net461;net462;net47;net471;net472</TargetFrameworks>
  </PropertyGroup>
  <PropertyGroup>

通过从类库csproj文件中删除以下行,我已经解决了这个问题

  <PropertyGroup>
    <TargetFrameworks>net45;net451;net452;net46;net461;net462;net47;net471;net472</TargetFrameworks>
  </PropertyGroup>
  <PropertyGroup>

那么你的问题是什么?如何解决这个问题?那么你的问题是什么?如何解决这个问题?让解决方案变得更奇怪;您需要指定一个或多个目标框架,否则会出现NETSDK1013构建错误-树中是否有其他/元素来自其他地方?@MarcGravel在csproj文件中有另一行v4.5,但无需添加所有可能的框架。为什么要加上这个?是否还有另一个bug,并且添加了这一行来消除它?它已经存在了,我今天刚刚克隆了这个项目@PanagiotisKanavosnope,在本地检查,添加v4.5对防止NETSDK1013没有任何帮助。在你的构建中有更多的东西,这很奇怪;您需要指定一个或多个目标框架,否则会出现NETSDK1013构建错误-树中是否有其他/元素来自其他地方?@MarcGravel在csproj文件中有另一行v4.5,但无需添加所有可能的框架。为什么要加上这个?是否还有另一个bug,并且添加了这一行来消除它?它已经存在了,我今天刚刚克隆了这个项目@PanagiotisKanavosnope,在本地检查,添加v4.5对防止NETSDK1013没有任何帮助。在你的构建中有更多的内容。我已经通过从csproj文件中删除几行内容解决了这个问题,我在回答中已经提到了这一点。请让我知道它是否是错误的wat。我已通过从csproj文件中删除几行来解决问题,我在回答中提到了这一点。如果是错的,请告诉我。