问题描述
我有 .Net Core 3.1 控制台应用程序,它指的是作为参考添加的类库项目 FxCore
.类库 csproj 有 <TargetFrameworks>net45;net451;net452;net46;net461;net462;net47;net471;net472</TargetFrameworks>
我已经尝试将其更改为 net45;</TargetFrameworks>
,但仍然出现相同的错误.
I have .Net Core 3.1 console application which is referring to a class library project FxCore
which is added as a reference.class library csproj has <TargetFrameworks>net45;net451;net452;net46;net461;net462;net47;net471;net472</TargetFrameworks>
I have tried changing it to <TargetFrameworks>net45;</TargetFrameworks>
, but still getting the same error.
我收到以下错误.我已经尝试过干净 ->重新构建,重新打开 Visual Studio 2019(版本 16.5.2)
I am getting the below error., I have tried clean -> ReBuild, Reopen the visual studio 2019 (version 16.5.2)
1>------ 构建开始:项目:FxCore,配置:调试任何 CPU------ 1>J:Testcorefx-coreFxCore.csproj(3,3): 警告 MSB4011: "C:Program Files (x86)Microsoft VisualStudio2019ProfessionalMSBuildCurrentMicrosoft.Common.props"无法再次导入.它已经导入到C:ProgramFilesdotnetsdk3.1.201SdksMicrosoft.NET.SdkSdkSdk.props (40,3)".这很可能是构建创作错误.这个后续导入将被忽略.1>C:程序Filesdotnetsdk3.1.201SdksMicrosoft.NET.SdkSdkSdk.targets(37,3):警告 MSB4011:"C:Program Files (x86)Microsoft VisualStudio2019ProfessionalMSBuildCurrentBinMicrosoft.CSharp.targets"无法再次导入.它已经在进口J:Testcorefx-coreFxCore.csproj (120,3)".这很可能是一个构建创作错误.此后续导入将被忽略.1>C:Program Files (x86)Microsoft VisualStudio2019ProfessionalMSBuildCurrentBinMicrosoft.Common.CurrentVersion.targets(2081,5):警告 MSB3245:无法解析此引用.找不到程序集FXEntity,版本=1.0.1.12,文化=中性,处理器架构=MSIL".检查以确保程序集存在于盘.如果您的代码需要此引用,您可能会得到编译错误.1>FxCore ->J:Testcorefx-coreinDebugFxCore.dll1>J:Testcorefx-coreFxCore.csproj(3,3): 警告 MSB4011:"C:Program Files (x86)Microsoft VisualStudio2019ProfessionalMSBuildCurrentMicrosoft.Common.props"无法再次导入.它已经导入到C:ProgramFilesdotnetsdk3.1.201SdksMicrosoft.NET.SdkSdkSdk.props (40,3)".这很可能是构建创作错误.这个后续导入将被忽略.1>C:程序Filesdotnetsdk3.1.201SdksMicrosoft.NET.SdkSdkSdk.targets(37,3):警告 MSB4011:"C:Program Files (x86)Microsoft VisualStudio2019ProfessionalMSBuildCurrentBinMicrosoft.CSharp.targets"无法再次导入.它已经在进口J:Testcorefx-coreFxCore.csproj (120,3)".这很可能是一个构建创作错误.此后续导入将被忽略.1>J:Testcorefx-coreFxCore.csproj(3,3): 警告 MSB4011:"C:Program Files (x86)Microsoft VisualStudio2019ProfessionalMSBuildCurrentMicrosoft.Common.props"无法再次导入.它已经导入到C:ProgramFilesdotnetsdk3.1.201SdksMicrosoft.NET.SdkSdkSdk.props (40,3)".这很可能是构建创作错误.这个后续导入将被忽略.1>C:程序Filesdotnetsdk3.1.201SdksMicrosoft.NET.SdkSdkSdk.targets(37,3):警告 MSB4011:"C:Program Files (x86)Microsoft VisualStudio2019ProfessionalMSBuildCurrentBinMicrosoft.CSharp.targets"无法再次导入.它已经在进口J:Testcorefx-coreFxCore.csproj (120,3)".这很可能是一个构建创作错误.此后续导入将被忽略.1>J:Testcorefx-coreFxCore.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:Testcorefx-coreFxCore.csproj(3,3):警告 MSB4011:"C:Program Files (x86)Microsoft VisualStudio2019ProfessionalMSBuildCurrentMicrosoft.Common.props"无法再次导入.它已经导入到C:ProgramFilesdotnetsdk3.1.201SdksMicrosoft.NET.SdkSdkSdk.props (40,3)".这很可能是构建创作错误.这个后续导入将被忽略.2>C:程序Filesdotnetsdk3.1.201SdksMicrosoft.NET.SdkSdkSdk.targets(37,3):警告 MSB4011:"C:Program Files (x86)Microsoft VisualStudio2019ProfessionalMSBuildCurrentBinMicrosoft.CSharp.targets"无法再次导入.它已经在进口J:Testcorefx-coreFxCore.csproj (120,3)".这很可能是一个构建创作错误.此后续导入将被忽略.2>C:Program Files (x86)Microsoft VisualStudio2019ProfessionalMSBuildCurrentBinMicrosoft.Common.CurrentVersion.targets(1655,5):警告 NU1702:ProjectReference 'J:Testcorefx-coreFxCore.csproj'已使用 '.NETFramework,Version=v4.6.1' 而不是项目目标框架.NETCoreApp,Version=v3.1".这个项目可能与您的项目不完全兼容.2>J:TestcoreCoreConsoleAppProgram.cs(2,7,2,9): 错误 CS0246:找不到类型或命名空间名称FX"(您是否缺少使用指令或程序集引用?)2>J:TestcoreCoreConsoleAppProgram.cs(7,24,7,32): 错误 CS0246:找不到类型或命名空间名称FxCommon"(您是否缺少using 指令或程序集参考?)2>完成构建项目CoreConsoleApp.csproj"- 失败的.========== 构建:1 次成功,1 次失败,0 次更新,0 次跳过 ==========
但是在 Program.cs 中我可以使用代码,IntelliSense 没有显示任何错误.
But in the Program.cs I am able to use the code, IntelliSense not showing any error.
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");
}
}
}
因此我无法运行控制台应用程序,请帮忙.
I am not able to run the console application due to this, please help.
推荐答案
.NET Core 不消耗 .NET Framework (net###
) 目标;它可以使用 netstandard*
和 netcoreapp*
.
.NET Core doesn't consume .NET Framework (net###
) targets; it can consume netstandard*
and netcoreapp*
.
所以;您的 FxCore
将需要定位/多定位 .NET Standard 或 .NET Core 之一.
So; your FxCore
is going to need to target/multi-target one of .NET Standard or .NET Core.
在选择什么目标/多目标方面:
In terms of choice of what to target/multi-target:
- target
netstandard*
- 如果您在实现中不需要任何特定于框架的内容 - 多目标
netcoreapp*
和netstandard*
- 如果您想在netcoreapp*
功能可用时使用它们,或者使用向下否则 - 级通用实现 - 多目标
netcoreapp*
和net###
- 如果实现完全特定于平台并且不可能有通用实现
- target
netstandard*
- if you don't need anything framework-specific in the implementation - multi-target
netcoreapp*
andnetstandard*
- if you want to usenetcoreapp*
features when they are available, or use a down-level common implementation otherwise - multi-target
netcoreapp*
andnet###
- if the implementations are completely platform specific and no common implementation is possible
(其中 *
/###
是您选择的版本 - 可能是 netstandard2.1
、netcoreapp3.1
code> 和 net472
/net48
在当前时间)
(where *
/ ###
is your choice of versions - probably netstandard2.1
, netcoreapp3.1
and net472
/net48
at the current time)
这篇关于在 .net core 控制台应用程序中使用 .net 类库时,项目构建失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!