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

.NET Standard中配置TargetFrameworks输出多版本类库

PBn项目分别执行下面操作:【添加】--【现有】--【添加为链接的方式】,将PA项目代码文件添加到各自项目中,如果代码不同,则需要使用#if #else #endif 等标签来判断 .NET Framework...DEBUG 调试 6、自动生成内部版本号 7、文件复制 下面逐步讲解如何解决以上问题。...在编写C#代码时能够自动智能感知自定义的常量 ? 上面是定义的统一的全局变量,也可以在每个条件编译分组中自定义常量 <!...(.NET Core)、如何有一个自动递增版本号(Visual Studio) msbuildtasks也了解一下,如果要兼容以前的内部版本号生成规则,可自己动手 七、文件复制 NuGet包相关...静态文件如何指定复制行为等,或许会发现安装NuGet之后希望能编辑的文件仅仅只是一个链接而已,如何让它包含在项目里面呢,请参考微软官方文档 NuGet ContentFiles揭秘,带回解决方案级包的讨论

2.8K21

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

升级Core的好处 去年中我曾考虑将我的控件库项目Kino.Toolkit.Wpf升级.NET Core,不过很快放弃了,因为当时.NET Core是预览版,编译WPF还需要使用最新的Visual...迁移到 PackageReference NuGet 引用 引用了Nuget包的旧.NET Framework项目会将引用的Nuget信息记录在packages.config文件中,例如在示例的项目中...net462;netcoreapp3.1 现在可以把这些内容复制Kino.Toolkit.Wpf.csproj,加上前面提到的...处理其它问题 迁移项目文件后会有一些问题,首先是以前目中排除的文件又包含在项目里了,毕竟以前那么复杂的项目文件可不是吃素的,这么简单粗暴迁移过来总会丢一些内容。...重新将他们目中排除,项目文件多了以下这些内容,以表明这些文件都是多余的(如果文件真是多余的也可以直接删掉):

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

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

我之前的博客中有介绍如何在项目中生成额外的代码,也有介绍制作一个生成代码的 NuGet 包。...-- 将项目中的所有 txt 文件搜集起来,用 WalterlvDemoFile 集合存起来。...如果你想复制到你的项目里,记得去掉行首的所有 + 号。 等你复制项目里之后,试着在 Test.txt 文件里面随便写点什么,然后保存。...对于已知的(Item)来说,Generator 属性是 MSBuild 编译时的一个已知元数据(Metadata),其作用为当此文件改变时,会执行一个指定的 Target 我们将其指定为 MSBuild...不过,你可以我的其他博客里找到很多生成代码的方法,比如这篇……还有这篇……还有这这这篇…… 生成代码, T T1, T2, Tn —— 自动生成多个类型的泛型 如何创建一个基于命令行工具的跨平台的

33310

如何零开发一个NuGet软件包?

但是,您是否曾经尝试并创建过一个nuget包呢?Nuget软件包比较容易引入类库中。因此,可以使用NuGet软件包管理器将nuget软件包添加到任何项目中。...Nuget包的剖析 Nuget软件包不仅是dll文件NuGet包是可移植的,它包含您要放入.Net目中的所有内容。您可以在其中放置txt文件或png文件。这就是为什么我们称它们为“包裹”。....nuspec nuspec是关于nuget包的元数据文件。在早期版本中,它曾经用于打包nuget包。但是在新的dotnet CLI中,此文件是由roslyn编译您的.csproj文件生成的。...它包括软件包的目标框架,名称,许可证,图标,标签,与其他包的依赖关系以及其中描述的要放置添加的项目中的静态文件。...只需计划你的项目并定义依赖即可。如果您的依赖需要.net core(如实体框架)或以.Net core为目标的对象,只需将目标框架选为“.Net core”。

1.3K30

教程:创建模板包

只要将不同的模板作为文件复制 working\templates\ 文件夹中,就可以使用该模板。 打开终端并导航 working\ 文件夹。...若要共享非打包模板,必须复制模板文件夹并通过该文件夹进行安装。 由于模板包中可以包含多个模板,并且是单个文件,因此共享更容易。 模板包由 NuGet 包 (.nupkg) 文件表示。...此外,可以直接 .nupkg 文件安装模板包。 通常情况下,使用 C# 项目文件编译代码并生成二进制文件。 但是,该项目也可用于生成模板包。...通过更改 .csproj 的设置,可以阻止它编译任何代码,而是将模板的所有资产都包含在内作为资源。 生成此项目后,它会生成模板包 NuGet 包。 将要创建的包将包含先前创建的模板和包模板。...接下来,在你喜爱的编辑器中打开 templatepack.csproj 文件并将内容替换为以下 XML: <PropertyGroup

66610

.net 知新:【4】NuGet简介和使用

通常,此类代码捆绑“包”中,其中包含编译的代码(如 DLL)以及在使用这些包的项目中所需的其他内容。... Visual Studio 2017 开始dotnet CLI 将自动随任何与 .NET Core 相关的工作负载一起安装。...在.net framework的packages.config文件中看到NPOI和它的依赖 ? 在.net 5文件中只有NPOI ? 第二个就是两个工具的功能有差异 ?...具有 .nupkg 扩展名的 NuGet 包只是一个 zip 文件。 若要轻松查看任何包的内容,只需将扩展名更改为 .zip 并按常规方法展开内容。...命令执行完成后打包后生成的文件路径会显示在控制台上,目录查看到ConsoleAppNet5.1.0.0.nupkg 包,并复制一个改成zip验证。 ?

2.1K40

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

.NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门 介绍了.NET Core环境,本文介绍.NET Core中最重要的一个配置文件project.json的相关内容。...NET Core 项目结构中最重要的文件可能是 project.json。此文件旨在: 替换 NuGet 文件管理器 package.config 文件,它可标识项目的 NuGet 引用。...,在nuget管理中也可以看到这是默认的离线包目录,我们需要什么样的包只要把它复制这个目录,在nuget管理中的程序包源选择离线的源即可。...project.json.lock  Project.json.lock 存储编译所需文件的列表(通常为 NuGet 引用)。...本文简要介绍了.NET Core项目中最为重要的一个配置文件project.json的内容和相关的工具,类库等基础信息,下篇文章我们来聊聊如何构建多个Project的解决方案的内容

2K80

.NET Core 3和对Windows桌面应用程序的支持

Side-by-side 应用程序本地部署 . net核心部署模型是Windows桌面开发人员在. net Core 3中体验的最大好处之一。简而言之,你可以以任何你想要的方式安装。...项目文件需要更新到目标.net Core 3。 依赖不需要重新定位和重新编译。如果您更新依赖,将会有额外的好处。 我们打算为桌面应用程序提供兼容的api。...但是我们不打算为EF6添加任何主要的新特性.EF Core将扩展为新的特性,并将保留所有类型的新应用程序的推荐数据堆栈。如果您想利用新特性和改进性能,我们建议您移植EF Core。...更新项目文件 在.NET Core项目中,我们采用了sdk风格的项目。sdk风格项目的一个关键方面是PackageReference,它是引用NuGet包的一种更新的方式。...NET Core 3文件看起来类似。 控件、NuGet包和现有的程序集引用 桌面应用程序通常有许多依赖,可能来自控件供应商,也可能来自不再具有源代码的NuGet或二进制文件

2.2K40

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

可以注意编译期间成功将 Foo.cs 文件加入了编译。 WPF 项目 现在,我们将我们的项目升级成 WPF 项目。编辑项目文件。...在那篇博客中,我们解释新生成的项目文件会使用 ReferencePath 替代其他方式收集的引用,这就包含项目引用和 NuGet 包的引用。...包中自动 Import 的部分没有加入依赖中,所以实际上包中的 .props 和 .targets 文件都不会被 Import 进来,这可能造成部分 NuGet 包在 WPF 项目中不能正常工作。...既然我们失去了通过 NuGet 被自动 Import 的时机,那么我们只能另寻它法: 帮助微软修复 NuGet 在 WPF 临时生成的项目中依然可以自动 Import 编译文件 .props 和 .targets...CompileTypeName,传入了字符串常量 Compile,这是为了在生成临时项目文件时使用正确的编译的名称。

41440

使用 NuGet 管理项目库

如何将库集成当前项目中并管理库的依赖和更新呢? ELMAH 就是一个非常有用的库,是由开发人员自己编写的。... Web 下载程序包后,您需要右键单击该文件,打开“属性”对话框,然后单击“取消阻止”按钮以文件删除“Web 的标记”。 验证其哈希值是否与托管环境提供的哈希值相符。...实际上,有必要将该依赖添加到版本控制之下的文件夹,并从该位置引用该程序集。 在项目中添加程序集引用。必须在 Visual Studio 项目中添加对该程序集的引用,然后才能使用该程序集。...如果您取一个 .docx 文件并将文件扩展名改为 .zip,您实际可以打开它并浏览里面的内容。 . nupkg 文件同样如此。 NuGet 产品同样随附能够轻松创建和发布程序包的实用工具。...私服 集成NuGet PackageJenkins CI

1.5K100

理解 C# 项目 csproj 文件格式的本质和编译流程

Visual Studio 是怎么让 csproj 中的内容正确显示出来的呢?更深入的,我能够自己扩展 csproj 的功能吗? 本文将直接 csproj 文件格式的本质来看以上这些问题。...dll 文件 MSTest 的 NuGet 包中以链接的形式包含到项目中,并且此文件在 Visual Studio 的解决方案列表中不可见。..." /> 而引入的这份 .targets 文件便包含了 msbuild 定义的各种核心编译任务。...你可以自己去查看此文件中的内容,相信有以上 Target 的简单介绍,应该能大致理解其完成编译的流程。...将 WPF、UWP 以及其他各种类型的旧 csproj 迁移成基于 Microsoft.NET.Sdk 的新 csproj - 吕毅 自动将 NuGet 包的引用方式 packages.config

2.5K10

dotnet build

项目通过项目引用或 NuGet 包引用所依赖的其他库。 对于目标版本低于 .NET Core 3.0 的可执行项目,通常不会将 NuGet 中的库依赖复制输出文件夹。...而是在运行时 NuGet 全局包文件夹中对其进行解析。 考虑这一点,dotnet build 的产品还未准备好转移到另一台计算机进行运行。...有关详细信息,请参阅 .NET 应用程序部署。 对于面向 .NET Core 3.0 及更高版本的可执行项目,库依赖会被复制输出文件夹。...大多数项目的默认配置为 Debug,但你可以覆盖项目中的生成配置设置。 -f|--framework 编译特定框架。 必须在项目文件中定义该框架。...示例 生成项目及其依赖: .NET CLI复制 dotnet build 使用“发布”配置生成项目及其依赖: .NET CLI复制 dotnet build --configuration Release

1.9K20

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

我们一直倾听,现在很自豪地介绍Grpc.Tools NuGet包的1.17版本开始,.NET C#项目中的Protocol Buffer和gRPC服务.proto文件的集成编译。...1.17版本现在可以Nuget.org获得。 你不再需要使用手写脚本.proto文件生成代码:.NET构建神奇地为你处理此问题。...实质上,.proto文件被视为.NET C#项目中的第一类源。 演练 在这篇博文中,我们将介绍最简单,且可能是最常见的方案,使用跨平台dotnet命令.proto文件创建库。...另外,我们需要一些.proto文件编译。在本练习中,我们将从gRPC发行版中复制示例文件examples/protos/helloworld.proto。...因此,编辑文件MyGreeter.csproj以添加helloworld.proto以便将其编译并将PrivateAssets属性添加到Grpc.Tools包参考中。

1.9K20

如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包

:创建一个项目,用来写工具的核心逻辑 为了方便制作跨平台的 NuGet 工具,新建项目时我们优先选用 .NET Core Library 项目或 .NET Standard Library 项目。...要特别注意:由于我们是一个 NuGet 工具,不需要被其他项目直接依赖,所以此项目的依赖包不应该传递下一个项目中。...Visual Studio 解决方案中(其实对于不认识的文件,None 就是默认值);Include 表示相对于项目文件的路径(支持通配符);Pack 表示这一要打包 NuGet;PackagePath...表示这一打包 NuGet 中的路径。...别忘了我们还有一个 buildMultiTargeting 文件夹,也要放一个几乎一样功能的 targets 文件;不过我们肯定不会傻复制一个一样的。

1.4K10

如何创建一个基于命令行工具的跨平台的 NuGet 工具包

:创建一个项目,用来写工具的核心逻辑 为了方便制作跨平台的 NuGet 工具,新建项目时我们优先选用 .NET Core 控制台项目。...Visual Studio 解决方案中(其实对于不认识的文件,None 就是默认值);Include 表示相对于项目文件的路径(支持通配符);Pack 表示这一要打包 NuGet;PackagePath...表示这一打包 NuGet 中的路径。...别忘了我们还有一个 buildMultiTargeting 文件夹,也要放一个几乎一样功能的 targets 文件;不过我们肯定不会傻复制一个一样的。...如果你要在编译期间替换一个类而不是新增一个类,例如将 Class1.cs 更换成新类,那么需要将其编译列表中移除: <!

98120

使用Jenkins部署.Net Core遇到的几个坑

一、相关环境和版本 服务器:windows2008【历史遗留服务器,建议升级2012以上,2016支持Windows的容器化技术】 源代码管理:git .net core版本:net core 2.2...排查:切换到服务器cmd下进行restore后发现,原来是nuget作怪,因为服务器无法找到部署在本地服务器的nuget包 ? 2.发布Nuget官网 试着解决:试着把nuget包发布官网。...Step 5: 再重新建置Jenkins Job 就可以正常運行了 Step7.无法复制的坑 现象:无法将“obj\Debug\netcoreapp2.2\Stone.Base.API.dll”复制...三、全自动发布自家类库Nuget官网或自家服务器   这里的发布改进了以往的手工发布。代码上传那一刻开始,jenkins自动到git抓取代码,自动编译打包,然后上传到nuget服务器。...参考文献: .NET Core Github Nuget 持续集成、部署 四、Jenkins常用插件 Green Balls 该插件让你的感官有了更好的提升,客官请看: ? ?

2.2K40

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

Compile 是 .NET目中的一个已知集合,当 CoreCompile 执行时,所有 Compile 集合中的文件将参与编译。...++ 微软自称 .NET 5.0.2 开始,可通过 IncludePackageReferencesDuringMarkupCompilation 属性来支持在 NuGet 包中生成源代码...如果你有一两个编译目标会动态生成一些 C# 源代码并将其加入 Compile 集合中,那么请将这个编译目标的名称加入 _WalterlvDemoImportInWpfTempProjectDependsOn...集合中,即可将这些文件加入到临时项目中一起编译。...-- 我们添加的其他资源需要在这里 Link 一个统一的目录下,以便在此项目和安装 NuGet 包的目标项目中可以用同样的 Uri 使用。

64120

MVC项目开发中那些用到的知识点(MvcContrib分离ASP.NET MVC项目)

MvcContrib可以将一个MVC项目里的所有内容(包括Views,Controllers,Scripts等)都编译一个dll里面。...2.然后再在解决方案中添加另外一个ASP.NET MVC3.0目MyPortable.Admin(后台项目),项目模版选择空项目,视图引擎还是选择Razor。   ...这意味着这些静态文件都将被编译进dll文件里面,而不是像之前那样,以单独物理文件存在。这样做的好处是整个项目里面的结构都是相对固定的,一个dll就包括了整个工程里的所有内容,可复用性高。...在主项目里面添加一个叫做Areas的文件夹,并将MyPortable/Views/Web.config复制新建的Areas文件夹下。 为什么需要这样做呢?...基于上面两点,建议只将view视图文件作为内嵌资源编译dll中,所有的静态文件(js,css,image)可以放到主项目中,直接访问。

55930
领券