首页 > 解决方案 > 在 .Net Core 中创建自定义 SDK

问题描述

在 .Net 核心项目中,有一个.csproj文件,其中第一行指定您在该项目中定位的 SDK,类似于:

<Project Sdk="Microsoft.NET.Sdk.Web">

我的问题是是否可以创建一个全新的 SDK(可能通过扩展Microsoft.NET.Sdk.Web)然后在其他一些项目中使用这个新的自定义 SDK,以使新项目在其.csproj文件中具有类似的内容:

<Project Sdk="My.Own.Sdk">

这样的事情怎么可能做到?

标签: visual-studio.net-coresdk

解决方案


是的,你可以这样做是为了好玩,但不太可能有官方对发布的支持。

如何:使用 MSBuild 项目 SDK

它显示了 msbuild 如何加载道具和目标,您可以在 .NET SDK 安装文件夹中找到SDK.props和文件(表示为,例如在 Windows 上)SDK.targetsdotnetC:\Program Files\dotnet

创建自己的 sdk 需要做的是在里面创建一个dotnet/sdk类似于任何其他 SDK 的文件夹。

并使用 path制作SDK.props和文件,作为引用您的道具和目标以自定义构建步骤的条目,SDK.targetsdotnet/sdk/<SDK_VERSION>/Sdks/<YOUR_SDK_NAME>/Sdk

如果按照惯例需要任何其他文件,请创建新文件以模仿现有文件。

但是,官方支持的自定义调用者构建步骤的方法是创建一个带有约定子文件夹的 nuget 包,build道具和目标文件将自动进入引用该包的项目中。


推荐阅读