首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从零开始制作 NuGet 源代码包(全面支持 .NET Core .NET Framework WPF 项目)

如果你希望在真实的项目当中测试,可以阅读其他博客了解如何在本地测试 NuGet 包。 第五步:加入 WPF 项目支持 截至目前,我们只是在源代码包中引入了 C# 代码。...-- 修复旧版本的 Microsoft.NET.Sdk 中,WPF 项目不支持在临时项目中通过 NuGet 包生成源代码的问题。...为什么可能有多个引入 C# 源代码的编译目标?因为本文我们只考虑了引入我们提前准备好的源代码放入源代码包中,而我们提到过可能涉及到动态生成 C# 源代码的需求。...完整项目结构和源代码 至此,我们已经完成了编写一个 NuGet 源代码包所需的全部源码。接下来你可以在项目中添加更多的源代码,这样打出来的源代码包也将包含更多源代码。...从简单到复杂的顺序: 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 - 吕毅 Roslyn 如何基于 Microsoft.NET.Sdk 制作源代码包

1.1K20

C#.NET 如何创建带有本机依赖的多框架多系统 NuGet 包

正常如果你想写一个 .NET 的 NuGet 包,直接打包就好了,你的引用程序集会出现在 NuGet 包内的 lib 文件夹内。然而,如果我们的 NuGet 包包含本机依赖的话怎么办呢?....dll、msvcp140.dll、vcruntime140.dll、ucrtbase.dll 等 其中 1 是完全使用 C# 编写的 .NET 程序集,2 是 C++/CLI 程序集。...在你具体的项目中,可以只有 1、4 也可以只有 1、3、4 或者是 2、4 或者是 2、3、4。对于这些不同的组合,NuGet 包的制作会有一点点不一样,在这篇博客里面都会说应该怎么做。...+ ref - net45 - netcoreapp3.1 - net5.0 最后那个 lib 文件夹应该不用多作解释了,一个普通的 .NET 程序集打出的 NuGet 包里带的就是这个文件夹...NuGet 的依赖安装 .NET Framework 项目 对于 .NET Framework 项目,项目编译后,NuGet 会自动将本机依赖包里对应架构和框架的文件拷贝到输出目录中,于是你就能正常运行你的程序了

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

    编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码

    我之前的博客中有介绍如何在项目中生成额外的代码,也有介绍制作一个生成代码的 NuGet 包。...但如果希望完整了解基于 MSBuild 生成代码的原理,你可以需要了解以下知识或教程: 理解 C# 项目 csproj 文件格式的本质和编译流程 如何创建一个基于命令行工具的跨平台的 NuGet 工具包...如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 准备项目 我们创建一个全新的项目,用来了解如何实时生成代码。...NuGet 工具包 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 Roslyn...如何基于 Microsoft.NET.Sdk 制作源代码包 参考资料 Build Time Code Generation in MSBuild · mhut.ch grpc/grpc: The C

    41510

    从零开始学习 dotnet 编译过程和 Roslyn 源码分析

    NuGet 工具包 - 吕毅 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 - 吕毅 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 - 吕毅 NuGet...通过 Nuget 引用源代码 在 VS 智能提示正常但是无法编译 - 林德熙 如果你的 NuGet 格式是旧的,或者说引用方式是旧的,推荐升级: 自动将 NuGet 包的引用方式从 packages.config...来执行我们的代码: Roslyn 使用 Target 替换占位符方式生成 nuget 打包 - 林德熙 Roslyn 通过 Target 修改编译的文件 - 林德熙 将 .NET Core 项目打一个最简单的...NuGet 源码包,安装此包就像直接把源码放进项目一样 - 吕毅 Roslyn 如何基于 Microsoft.NET.Sdk 制作源代码包 - 林德熙 Roslyn 基础 Roslyn 由于其丰富且易用的...入门:使用 Roslyn 静态分析现有项目中的代码 - 吕毅 Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码 - 吕毅 额外的,你可以阅读更多 Roslyn

    42640

    Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity

    Unity 项目虽然可使用 C# 项目作为脚本,却并没有提供一种类似 NuGet 的第一方包管理器。不过,还是有第三方包管理器可以用,为 C# 脚本应用现有的库提供方便。...安装到你刚刚打开的项目中。...安装 NuGet 包 就从上面所述的菜单那里打开,你可以进入 NuGet 包的搜索与安装界面。输入并找到你想安装的 NuGet 包,然后点击 Install 即可。...关于手工安装 NuGet 包的方式,我在另一篇入门文档当中也有说到过: Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 - walterlv 参考资料 GlitchEnzo...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。

    2.7K41

    如何使用 VS Code开发.NET Core应用程序

    在这篇文章中,我们将学习有关使用 Visual Studio Code开发,调试,测试和部署ASP.NET Core应用程序的信息,它将包括: •安装必须的插件•创建一个.NET Core 应用程序•如何运行项目...安装必要的插件 1.安装 C# extensions[1] ,这是开发 .NET Core应用程序所必需的,要打开扩展程序列表,请选择菜单左侧的扩展程序图标,或使用 Ctrl + Shift + X...1.然后安装 NuGet Gallery[2],这个可以在VS Code 中管理Nuget包。...文件,launch.json文件具有运行和调试源代码的配置,如果没有该文件,则无法在VS Code中进行调试 这里我们创建json文件,然后手动修改启动dll的位置,修改 "program": "${workspaceFolder...NET Core项目模板•dotnet restore - 还原NuGet软件包•dotnet build - 构建源代码•dotnet run - 运行源代码•dotnet test - 运行测试用例

    2.5K20

    制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案)

    在安装此 NuGet 包后,目标项目将获得这些源代码。 你可以通过以下博客了解如何制作一个源代码包。...将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 - 吕毅 Roslyn 如何基于 Microsoft.NET.Sdk 制作源代码包 - 林德熙 SourceYard...制作源代码包 - 林德熙 这可以避免因为安装 NuGet 包后带来的大量程序集引用,因为程序集数量太多对程序的启动性能有很大的影响: C# 程序集数量对软件启动性能的影响 - 林德熙 然而制作一个 NuGet...C# 代码文件,用于测试是否正常引入了源代码包; 项目的 csproj 文件,用于控制源代码包的编译过程。...方案二:修改项目文件(可行,但不好) 方案二的其中一种实施方案是下面这篇文章在最后一小节说到的方法: Roslyn 如何基于 Microsoft.NET.Sdk 制作源代码包 具体来说,就是修改项目文件

    49040

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

    指定项目支持的框架,以及有关如何为特定框架构建项目的配置详细信息。 标识独立应用的目标平台,它含有其所有依赖项,包括对应平台所需的特定于平台的 .NET Core 运行时。...Frameworks 和 dependencies dependencies此部分列出了你的项目所依赖的各个 NuGet 包,包括所述依赖项的版本号。...对于.NET Core来说,所有使用到的程序集都被打包成一个NuGet包,所以针对程序集的直接依赖转变成针对某个NuGet包的依赖。...global.json global.json是一个有待探究的神奇配置文件,我最喜欢的一个功能是全新的支持调试和单步执行,甚至可以实时修改包的源代码。...本文简要介绍了.NET Core项目中最为重要的一个配置文件project.json的内容和相关的工具,类库等基础信息,下篇文章我们来聊聊如何构建多个Project的解决方案的内容。

    2K80

    gRPC遇见.NET SDK和Visual Studio:构建时自动生成编码

    我们一直倾听,现在很自豪地介绍从Grpc.Tools NuGet包的1.17版本开始,.NET C#项目中的Protocol Buffer和gRPC服务.proto文件的集成编译。...实质上,.proto文件被视为.NET C#项目中的第一类源。 演练 在这篇博文中,我们将介绍最简单,且可能是最常见的方案,使用跨平台dotnet命令从.proto文件创建库。...https://raw.githubusercontent.com/grpc/grpc/master/examples/protos/helloworld.proto 接下来,将必需的NuGet包添加到项目中...但是,如果你更改了helloworld.proto源代码,那么在构建期间它的输出将被重新生成,然后由C#编译器重新编译。这是你期望修改任何源文件的常规依赖关系跟踪行为。...当然,你也可以将.cs文件添加到同一个项目中:毕竟,它是构建.NET库的常规C#项目。我们在RouteGuide示例中是这样做的。

    2.1K20

    在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargetingTargetFrameworks)

    这里面的代码都是用 Target 写出来的,如果你对此不了解,建议阅读这些博客: 理解 C# 项目 csproj 文件格式的本质和编译流程 - walterlv 从零开始制作 NuGet 源代码包(全面支持....NET Core / .NET Framework / WPF 项目) - walterlv 制作有自定义功能的 NuGet 包 我之前写过一些关于如何制作各种高级功能的 NuGet 包的博客: 如何创建一个基于命令行工具的跨平台的...NuGet 工具包 - walterlv 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 - walterlv 从零开始制作 NuGet 源代码包(全面支持 .NET Core...> 但是,有的小伙伴希望探索一些更高级的用法,所以可能会遇到在多框架项目中,NuGet 包自定义的功能不执行的问题。...文件夹的 NuGet 包装到单框架项目中 包含 build 和 buildMultiTargeting 文件夹的 NuGet 包装到多框架项目中 1.

    38130

    Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包

    背景 对于传统 .NET/C# 的开发者来说,在解决方案中管理 NuGet 包,在 C# 项目中引用 dll 或 NuGet 包是家常便饭。...开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 - walterlv 如何引用 dll 或者安装 NuGet 包 在 Unity 中,是给 C# 脚本引用 dll 或者安装...当然,引用 NuGet 包的话更推荐非官方的方法,详见: 如何管理 Unity 项目中的 NuGet 包?...原生 原生 Unity 项目并不能直接安装 NuGet 包,所以实际上对于 NuGet 包的引用是通过把包里的 dll 丢到 Plugins 文件夹来实现的。 既然如此,那就看如何丢进去更有效率了。...第三方 更推荐非官方的方法,详见: 如何管理 Unity 项目中的 NuGet 包?

    3.1K20

    C# 一分钟浅谈:Roslyn 编译器平台介绍

    Microsoft 的 Roslyn 编译器平台就是这样一个强大的工具,它不仅重新定义了 C# 和 VB.NET 的编译过程,还为开发者提供了丰富的 API 来操作和分析代码。...Roslyn 是 Microsoft 开发的一个开源编译器平台,用于 C# 和 VB.NET 语言。它将传统的编译过程分解为多个阶段,并为每个阶段提供了可编程的 API。...诊断(Diagnostics) :编译器生成的错误和警告信息。 安装和配置 要开始使用 Roslyn,首先需要安装 NuGet 包。...Microsoft.CodeAnalysis.Workspaces.MSBuild 基础示例:解析和打印语法树 下面是一个简单的示例,展示如何使用 Roslyn 解析 C# 源代码并打印其语法树: using...批处理:尽量减少对编译器的调用次数,批量处理多个任务。 结论 Roslyn 编译器平台为 C# 和 VB.NET 开发者提供了强大的工具,不仅可以解析和分析代码,还可以生成和修改代码。

    32010

    在项目文件 MSBuild NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件

    从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) - walterlv 如何创建一个基于 MSBuild Task 的跨平台的 NuGet...工具包 - walterlv 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 - walterlv 当我们创建的 NuGet 包中包含 .props 和 .targets 文件的时候,我们相当于在项目文件...-- 当生成 WPF 临时项目时,不会自动 Import NuGet 中的 props 和 targets 文件,这使得在临时项目中你现在看到的整个文件都不会参与编译。...然而,我们可以通过欺骗的方式在主项目中通过 _GeneratedCodeFiles 集合将需要编译的文件传递到临时项目中以间接参与编译。...:从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 而下面的属性适合写到 .targets 里面,因为这里使用到了其他的属性: 1

    27820

    Windows中使用MySql.Data库将C# 接到 MySQL

    由于文章是2009 年 11 月 18 日写的,到现在已经将近15年了,所以有些地方需要基于最新的.Net和C#版本进行修改,尤其是在MySql.Data库和.Net版本的使用和匹配上。...本文的目的是逐步展示如何使用 MySql Connect/NET 使用 C# 和 MySql 连接。...我将在整篇文章中创建有关 DML(插入、更新、选择、删除)的简单示例,以展示如何使用 C# 查询数据库,最后我将向您展示如何备份数据库并将其保存在 .sql 中我们的应用程序中的文件,以及如何将其恢复。...,只需要通过NuGet包管理器搜索MySql.Data包安装即可,也可以借助NuGet命令行安装MySql.Data包。...ConnectCsharpToMysql.sln工程文件,并对项目进行升级,然后通过VS2022中的NuGet包管理器安装MySql.Data包,截止目前最新的MySql.Data库最新版本为:8.3.0

    35300
    领券