首页
学习
活动
专区
圈层
工具
发布

.NET Core系列 : 2 、project.json 这葫芦里卖的什么药

我们创建的项目可以针对一个或者多个Framework(比如我们希望创建的可以同时在.NET Framework和.NET Core上运行),支持的Framework定义在frameworks节点下。...": "1.0.0" } 这是一个依赖项,平台的依赖,它也是Nuget包,其中包含了一堆系统库的NuGet程序包,包含.netcore的基础运行时和基础类库。...本质上来说,NETStandard.Library 是一个目标最低支持基础类库,这样就可以更好的向前兼容性,在现有的平台出现新的版本时(如.net core 1.1 甚至 2.0)而无需重新发布新的变化....NET平台标准1.3版本,那么它仅能够运行在.NET Framework 4.6或更新的框架、Universal Windows Platform 10(UWP)、DNX Core 5.0和Mono/...本文简要介绍了.NET Core项目中最为重要的一个配置文件project.json的内容和相关的工具,类库等基础信息,下篇文章我们来聊聊如何构建多个Project的解决方案的内容。

3.7K80

是时候将WPF控件库从.Net Framework升级到.NET Core 3.1

新的csproj文件,顺便升级到新的SDK-style csproj文件有很多好处,包括更简洁可读的文件,新的NuGet引用方式,可以指定多个开发框架等。 更方便打包Nuget。...在弹出的对话框会列出顶级的依赖项和传递的依赖项,还会询问是否将后者升级到顶级依赖项,这个项目无需做任何改变,直接点击“确定”: ? 迁移完成后会得到一个报告: ?...打开Kino.Toolkit.Wpf.csproj,会发现少了些东西,但多了下面这段,这段就是经过精简的Nuget引用,在“管理Nuget程序包”的页面也可以看到已安装的Nuget变少了: ? ?...迁移csproj项目文件 接下来需要迁移csproj项目文件到新的SDK-Style格式,不过在那以前好歹先确保自己已经安装了.NET Core 3.1 SDK,随便新建一个WPF (.NET Core....NET Core 代码的 MSBuild 任务和目标,Sdk="Microsoft.NET.Sdk.WindowsDesktop"标识这是一个.NET Core的WinForms或WPF项目。

5.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    .NET Core中的包、元包与框架

    如,通常.NET Core 的所有包会在同一计划内提供对同一平台的支持。这种情况下,补丁会以小的单个更新包的形式发布和安装。...这些库可用于那些基于或兼容.NET Framework 4.6的应用。这是所有框架的传统工作方式。 .NETStandard,Version=1.3是一个基于包的框架。...如,一个net46资产可能不兼容.NET Framework 4.0 或 .NET Core 1.0。 ? 上图描述了这种双向关系。API指定并定义框架。框架选择资产。资产提供具体的API实现。...它们支持任何与.NET标准(.NET Standard )兼容的运行时,如.NET Core、.NET Framework和Mono/Xamarin(下面附上一张图作为补充)。...你可以引用基于或兼容netcoreapp,如netstandard的附加库,以获取对附加库API的访问。

    2K40

    WPF 通过 ReadyToRun 提升性能

    通过 ReadyToRun 可以在程序集同时包含 IL 和本机代码,可以有效提升软件的启动速度 在 .NET Core 3.0 Preview 6 发布了 ReadyToRun 的功能,通过这个功能可以提升软件的启动性能...版本大于 .NET Core 3.0 Preview 6 使用以下命令可以知道自己的 sdk 版本 dotnet --info 在控制台输入上面代码将会输出当前设备安装的版本 Version:...-012264\ 如果发现自己的版本比较低请到官网 下载最新版本安装 打开或新建一个 WPF 项目,在项目文件里面添加属性 PublishReadyToRun 请看代码 Sdk="Microsoft.NET.Sdk.WindowsDesktop...另外因为默认只对独立部署生效,所以独立部署属性可选添加 一个空白的 WPF 程序编译的时候将会让程序文件多了大约 3k 的大小,但是这部分关系不大,因为在 .NET Core 3.0 Preview 6...>true 现在的项目文件代码如下 Sdk="Microsoft.NET.Sdk.WindowsDesktop">

    1.6K10

    从以前的项目格式迁移到 VS2017 新项目格式 必须删除必须修改添加文件项目引用引用包删除多余文件输入注释多个框架使用条件判断迁移 WPF 项目

    建议从一个测试项目试试,先做好提交,如果失败可以回滚。...="Microsoft.NET.Sdk"> 可以看到新的格式的代码比较少 其实建议大家重新创建一个项目,然后把文件放进去,安装 Nuget 不然需要修改比较多。...-49EF-963D-EE1E72C3177E} ClassLibrary1 Project 这个可以表示这是一个类库或一个其他的项目...因为现在存在一些项目是使用多个开发框架,这时就需要修改TargetFramework为TargetFrameworks也就是写为复数的TargetFrameworks,把里面的一个框架修改为多个,请看下面...NETCOREAPP2_0 NETCOREAPP2_1 参见:让一个 csproj 项目指定多个开发框架 - walterlv 迁移 WPF 项目 如果需要迁移 WPF 项目,那么先记下自己的引用,最好是截图

    5.2K20

    .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门

    安装.NET Core .NET Core 包括.NET Core Runtime 和 .NET Core SDK: .NET Core = 应用运行依赖的 .NET Core Runtime .NET...Core SDK = 使用.NET Core开发应用.NET Core Runtime 和 SDK+CLI(Software Development Kit/Command Line Interface...dotnet pack pack命令编译项目并生成NuGet包,该操作会生成两个NuGet程序包: 一个包括已编译代码的程序集文件 一个包括调试符号和已编译代码的程序集文件 项目依赖的NuGet项目添加到生成...生成目录的内容将取决于项目的类型,但可以包括一个跨平台的 IL 应用程序和他依赖项,这就是通常用的Portable部署方式,应用程序共享.NET Core运行时环境与程序集依赖,部署的目标机器上需要事先安装...Self-contained部署方式就是每个应用程序自带.NET Core运行时环境与程序集依赖,部署的目标机器不需要安装.NET Core SDK,将应用程序文件夹拷贝过来就能运行。

    2.6K50

    global.json 概述

    latestPatch 使用最新安装的补丁级别,该补丁级别与请求的主要、次要和功能带与补丁级别相匹配,并且大于或等于指定的值。 如果找不到,则失败。...latestFeature 使用与请求的主要和次要功能区和补丁程序级别大于或等于指定值相匹配的最高已安装功能区和补丁程序级别。 如果找不到,则失败。...latestMinor 使用与请求的主版本相匹配的最高安装次版本、功能区域和补丁级别,并且次版本、功能区域和补丁级别大于或等于指定的值。 如果找不到,则失败。...当您并行安装多个运行时,或者您正在使用global.json文件时,将使用最新安装的 .NET 运行时版本的匹配规则。...以下警告表明您的项目面向 EF Core 1.0 或 1.1,这与 .NET Core 2.1 SDK 和更高版本不兼容: 启动项目“{startupProject}”针对框架“.NETCoreApp

    2.6K10

    .NET Core部署中你不了解的框架依赖与独立部署

    缺点 仅当主机系统上已安装你设为目标的 .NET Core 版本或更高版本时,应用才能运行。 如果不了解将来版本,.NET Core 运行时和库可能发生更改。...完成程序调试和测试后,使用下列命令创建部署 dotnet publish -f netcoreapp2.1 -c Release 这将创建一个应用的发行版(而不是调试版)。...包含第三方依赖项的依赖框架的部署 要使用一个或多个第三方依赖项来部署依赖框架的部署,需要这些依赖项都可供项目使用。... 包含第三方依赖项的独立部署 部署包含一个或多个第三方依赖项的独立部署包括添加依赖项。...请注意,可以只将具有一个第三方库的独立部署部署到该库支持的平台。 这与依赖框架的部署中具有本机依赖项和第三方依赖项相似,其中的本机依赖项必须与部署应用的平台兼容。

    3.1K20

    Magicodes.IE编写多框架版本支持和执行单元测试

    因此,单元测试确实需要针对各个框架版本进行测试,并且相关代码需要针对框架进行兼容修改。那么如何实现呢?接下来我们一步步实践。...目标框架名字对象 (TFM) 是一个标准化令牌格式,用于指定 .NET 应用或库的目标框架。...下表显示 .NET Core SDK 和 NuGet 客户端支持的目标框架。 等效项显示在括号内。 例如,win81 对于 netcore451 来说等效于 TFM。..." Version="12.0.3" /> 除了工程里面,我们代码中如何针对不同的框架版本编写代码呢?...针对具体的单元测试,我们还可以指定目标框架进行运行和调试: ? 总结和经验分享 结合整改的过程,我们可以得出以下经验: 单元测试编写时的异常消息判断尽量使用字符串包含判断,而不判断完整格式。 ?

    1.1K10

    【ASP.NET Core 基础知识】--环境设置

    兼容性: .NET Core保持了与传统.NET Framework的一些兼容性,同时引入了一些新的特性和改进。这有助于现有.NET应用程序的迁移,并为新项目提供了灵活性。...解决方法: 确保你已经正确下载并安装了与你操作系统兼容的.NET Core SDK版本。检查系统的环境变量是否正确配置,以便找到SDK的安装路径。...更新项目文件中的 元素,以匹配新的.NET Core SDK版本。 更新失败或卡住: 问题: 在运行升级命令时,安装过程可能会失败或卡住。...NuGet 包冲突: 问题: 在升级.NET Core SDK时,可能会发现一些依赖的NuGet包的版本与新版本的.NET Core SDK不兼容。...解决方法: 使用环境变量或 .NET Version Manager (dnvm) 来管理多个版本的.NET Core。

    1.8K10

    ASP.NET Core 2.2 正式版发布

    怎么获取它 您可以从 .NET Core 2.2 下载页面下载适用于您的开发机器和构建服务器的新 .NET Core SDK(2.2.100)。...此页面还提供了新的 Windows Server hosting,运行时安装程序和二进制存档,用于更新服务器。...此版本将 .NET Core,ASP.NET Core 和 Entity Framework Core 更新为2.2.0版。 新的SDK版本是2.2.100。...以下是BeatPulse团队关于他们对我们新的Health Checks API的支持的消息: BeatPulse是一个社区驱动的项目,旨在为系统,网络和企业内部常见的各种服务提供健康检查机制,例如:...请注意,针对.NET Core(而不是.NET Framework)的项目不应为Microsoft.AspNetCore.App程序包指定程序包版本(译者注:这个程序包不指定具体版本号,由SDK管理),

    3.3K20

    Magicodes.IE编写多框架版本支持和执行单元测试

    因此,单元测试确实需要针对各个框架版本进行测试,并且相关代码需要针对框架进行兼容修改。那么如何实现呢?接下来我们一步步实践。...目标框架名字对象 (TFM) 是一个标准化令牌格式,用于指定 .NET 应用或库的目标框架。...下表显示 .NET Core SDK 和 NuGet 客户端支持的目标框架。 等效项显示在括号内。 例如,win81 对于 netcore451 来说等效于 TFM。 ? 如何让工程支持多个框架?..." Version="12.0.3" /> 除了工程里面,我们代码中如何针对不同的框架版本编写代码呢?...针对具体的单元测试,我们还可以指定目标框架进行运行和调试: ? 总结和经验分享 结合整改的过程,我们可以得出以下经验: 单元测试编写时的异常消息判断尽量使用字符串包含判断,而不判断完整格式。 ?

    1K10

    记将一个大型客户端应用项目迁移到 dotnet 6 的经验和决策

    其中一个就是 dotnet core 里面,没有一个多 Exe 入口的客户端应用的最佳实践。这里面涉及到客户端应用独立管理运行时环境时,多个 Exe 的冲突处理和安装完成之后的文件夹体积的矛盾。...然而 dotnet core 当前没有一个最佳实践可以让多个 Exe 之间完美共享运行时且不受系统所安装的全局 dotnet 运行时影响,同时照顾到安装完成之后的文件夹体积 我列出的问题点如下 多个 Exe...然而在 dotnet 6 里面,却实际的 DLL 的版本号要大于或等于依赖引用的 DLL 版本。核心问题冲突在于分发给用户端的运行时框架版本,与开发者使用的 SDK 版本的差异 为什么会出现此差异?...正在寻找解决方法,但是依然没有找到 尝试的解决方法有两个: 第一个是让开发者安装与用户运行时的版本相同的 SDK 然后通过 global.json 设置特定的版本。...这是可以解决的,只是需要开发者额外安装 SDK 而已,安装 SDK 的方法是解压缩文件 第一个方法需要给每个开发者安装旧 SDK 版本,而且每次更新 SDK 都需要重新对每个开发者来一次。

    2.3K10
    领券