本文介绍了在 .net core 控制台应用程序中使用 .net 类库时,项目构建失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有 .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:

  1. target netstandard* - 如果您在实现中不需要任何特定于框架的内容
  2. 多目标 netcoreapp*netstandard* - 如果您想在 netcoreapp* 功能可用时使用它们,或者使用向下否则 - 级通用实现
  3. 多目标 netcoreapp*net### - 如果实现完全特定于平台并且不可能有通用实现
  1. target netstandard* - if you don't need anything framework-specific in the implementation
  2. multi-target netcoreapp* and netstandard* - if you want to use netcoreapp* features when they are available, or use a down-level common implementation otherwise
  3. multi-target netcoreapp* and net### - if the implementations are completely platform specific and no common implementation is possible

(其中 */### 是您选择的版本 - 可能是 netstandard2.1netcoreapp3.1code> 和 net472/net48 在当前时间)

(where * / ### is your choice of versions - probably netstandard2.1, netcoreapp3.1 and net472/net48 at the current time)

这篇关于在 .net core 控制台应用程序中使用 .net 类库时,项目构建失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 21:29