在 .net core 控制台应用程序中使用 .net 类库时,项目构建失败 [英] Project build failed while using .net class library in .net core console application

查看:27
本文介绍了在 .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 次跳过 ==========

1>------ Build started: Project: FxCore, Configuration: Debug Any CPU ------ 1>J:Testcorefx-coreFxCore.csproj(3,3): warning MSB4011: "C:Program Files (x86)Microsoft Visual Studio2019ProfessionalMSBuildCurrentMicrosoft.Common.props" cannot be imported again. It was already imported at "C:Program Filesdotnetsdk3.1.201SdksMicrosoft.NET.SdkSdkSdk.props (40,3)". This is most likely a build authoring error. This subsequent import will be ignored. 1>C:Program Filesdotnetsdk3.1.201SdksMicrosoft.NET.SdkSdkSdk.targets(37,3): warning MSB4011: "C:Program Files (x86)Microsoft Visual Studio2019ProfessionalMSBuildCurrentBinMicrosoft.CSharp.targets" cannot be imported again. It was already imported at "J:Testcorefx-coreFxCore.csproj (120,3)". This is most likely a build authoring error. This subsequent import will be ignored. 1>C:Program Files (x86)Microsoft Visual Studio2019ProfessionalMSBuildCurrentBinMicrosoft.Common.CurrentVersion.targets(2081,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "FXEntity, Version=1.0.1.12, Culture=neutral, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. 1>FxCore -> J:Testcorefx-coreinDebugFxCore.dll 1>J:Testcorefx-coreFxCore.csproj(3,3): warning MSB4011: "C:Program Files (x86)Microsoft Visual Studio2019ProfessionalMSBuildCurrentMicrosoft.Common.props" cannot be imported again. It was already imported at "C:Program Filesdotnetsdk3.1.201SdksMicrosoft.NET.SdkSdkSdk.props (40,3)". This is most likely a build authoring error. This subsequent import will be ignored. 1>C:Program Filesdotnetsdk3.1.201SdksMicrosoft.NET.SdkSdkSdk.targets(37,3): warning MSB4011: "C:Program Files (x86)Microsoft Visual Studio2019ProfessionalMSBuildCurrentBinMicrosoft.CSharp.targets" cannot be imported again. It was already imported at "J:Testcorefx-coreFxCore.csproj (120,3)". This is most likely a build authoring error. This subsequent import will be ignored. 1>J:Testcorefx-coreFxCore.csproj(3,3): warning MSB4011: "C:Program Files (x86)Microsoft Visual Studio2019ProfessionalMSBuildCurrentMicrosoft.Common.props" cannot be imported again. It was already imported at "C:Program Filesdotnetsdk3.1.201SdksMicrosoft.NET.SdkSdkSdk.props (40,3)". This is most likely a build authoring error. This subsequent import will be ignored. 1>C:Program Filesdotnetsdk3.1.201SdksMicrosoft.NET.SdkSdkSdk.targets(37,3): warning MSB4011: "C:Program Files (x86)Microsoft Visual Studio2019ProfessionalMSBuildCurrentBinMicrosoft.CSharp.targets" cannot be imported again. It was already imported at "J:Testcorefx-coreFxCore.csproj (120,3)". This is most likely a build authoring error. This subsequent import will be ignored. 1>J:Testcorefx-coreFxCore.csproj : warning NU1603: FxCore depends on Microsoft.Practices.ServiceLocation (>= 1.3.0) but Microsoft.Practices.ServiceLocation 1.3.0 was not found. An approximate best match of Microsoft.Practices.ServiceLocation 1.4.11 was resolved. 1>Done building project "FxCore.csproj". 1>Done building project "FxCore.csproj". 2>------ Build started: Project: CoreConsoleApp, Configuration: Debug Any CPU ------ 2>J:Testcorefx-coreFxCore.csproj(3,3): warning MSB4011: "C:Program Files (x86)Microsoft Visual Studio2019ProfessionalMSBuildCurrentMicrosoft.Common.props" cannot be imported again. It was already imported at "C:Program Filesdotnetsdk3.1.201SdksMicrosoft.NET.SdkSdkSdk.props (40,3)". This is most likely a build authoring error. This subsequent import will be ignored. 2>C:Program Filesdotnetsdk3.1.201SdksMicrosoft.NET.SdkSdkSdk.targets(37,3): warning MSB4011: "C:Program Files (x86)Microsoft Visual Studio2019ProfessionalMSBuildCurrentBinMicrosoft.CSharp.targets" cannot be imported again. It was already imported at "J:Testcorefx-coreFxCore.csproj (120,3)". This is most likely a build authoring error. This subsequent import will be ignored. 2>C:Program Files (x86)Microsoft Visual Studio2019ProfessionalMSBuildCurrentBinMicrosoft.Common.CurrentVersion.targets(1655,5): warning NU1702: ProjectReference 'J:Testcorefx-coreFxCore.csproj' was resolved using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v3.1'. This project may not be fully compatible with your project. 2>J:TestcoreCoreConsoleAppProgram.cs(2,7,2,9): error CS0246: The type or namespace name 'FX' could not be found (are you missing a using directive or an assembly reference?) 2>J:TestcoreCoreConsoleAppProgram.cs(7,24,7,32): error CS0246: The type or namespace name 'FxCommon' could not be found (are you missing a using directive or an assembly reference?) 2>Done building project "CoreConsoleApp.csproj" -- FAILED. ========== Build: 1 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

但是在 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 类库时,项目构建失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆