visual-studio - 在 .Net Core 中创建自定义 SDK
问题描述
在 .Net 核心项目中,有一个.csproj
文件,其中第一行指定您在该项目中定位的 SDK,类似于:
<Project Sdk="Microsoft.NET.Sdk.Web">
我的问题是是否可以创建一个全新的 SDK(可能通过扩展Microsoft.NET.Sdk.Web
)然后在其他一些项目中使用这个新的自定义 SDK,以使新项目在其.csproj
文件中具有类似的内容:
<Project Sdk="My.Own.Sdk">
这样的事情怎么可能做到?
解决方案
是的,你可以这样做是为了好玩,但不太可能有官方对发布的支持。
它显示了 msbuild 如何加载道具和目标,您可以在 .NET SDK 安装文件夹中找到SDK.props
和文件(表示为,例如在 Windows 上)SDK.targets
dotnet
C:\Program Files\dotnet
创建自己的 sdk 需要做的是在里面创建一个dotnet/sdk
类似于任何其他 SDK 的文件夹。
并使用 path制作SDK.props
和文件,作为引用您的道具和目标以自定义构建步骤的条目,SDK.targets
dotnet/sdk/<SDK_VERSION>/Sdks/<YOUR_SDK_NAME>/Sdk
如果按照惯例需要任何其他文件,请创建新文件以模仿现有文件。
但是,官方支持的自定义调用者构建步骤的方法是创建一个带有约定子文件夹的 nuget 包,build
道具和目标文件将自动进入引用该包的项目中。
推荐阅读
- mongodb - Mogodb 聚合从 2 个数组创建输出为 {"key": "value"}
- php - 根据 Woocommerce 中的特定用户角色显示菜单项
- python-3.x - 无法获得漂亮的汤以返回正确的文章标题、链接和 img。帮忙调试?
- javascript - Pannellum clickHandlerFunc
- angular - 未处理的承诺拒绝:[object Object] 没有提供者!; 区:
; 任务:Promise.then;值:错误:[object Object] 没有提供者! - docker - 如何在 Jenkins Pipeline 上构建 Docker 映像,而不更改底层 Jenkins VM 的权限?
- php - htaccess 将规则重写到 Wordpress 页面而不更改 URL
- python-3.x - 分区键作为python azure存储表中的变量
- database - 将数据库用于人工智能?
- dialogflow-es - Dialogflow @sys.email 实体未识别电子邮件