nuget

How do I get access to CimCmdlets in .NET Core when using System.Management.Automation?

别等时光非礼了梦想. 提交于 2020-08-10 19:14:09
问题 Goal I would like to have access to the cmdlets in the CimCmdlets module in .NET Core within C# code. Specifically, I want to be able to use the New-CimSessionOption and New-CimSession cmdlets. NuGet Packages Microsoft.NETCore.App v2.2.0 Microsoft.Powershell.SDK v6.2.2 Simple Demo using System; using System.Management.Automation; namespace ConsoleApp1 { class Program { static void Main(string[] args) { string str; using (var ps = PowerShell.Create()) { str = ""; var results = ps.AddScript(

dotnet CBB 为什么决定推送 Tag 才能打包

一个人想着一个人 提交于 2020-08-10 18:52:09
通过推送 Tag 才打 NuGet 包的方法的作用不仅仅是让打包方便,让打包这个动作可以完全在本地执行,无需关注其他系统的使用步骤。更重要的是可以强制每个可能被安装的 NuGet 包版本都能有一个和他对应的 Tag 号,原因是为了解决回退到某个版本发现有一个坑,这个坑是因为某个依赖库的版本问题,此时我期望最小改动,我虽然能拿到这个库的代码,但是我很难知道我这个版本安装的 NuGet 库对应依赖库的哪个 commit 的代码 我之前每次需要追踪某个 NuGet 包对应的依赖库的源代码的版本的时候,都需要进入打包服务器,查看打包日志,在这样很坑玩了很久,公司的配置管理员干掉了服务器,删除了日志。而我接到一个很古老的项目需要修复某个坑,此时这个项目引用了一个底层库的古老版本,此时我不能升级底层库,应该底层库的改动量太大了。但是我又很难定位我现在项目引用的 NuGet 库对应的底层库的哪个 commit 代码。后面只能通过二分的方法,用了几天的开发才完成 所以看到了我上面的坑,小伙伴大概也就能知道为什么我期望将 Tag 和 NuGet 包关联了 在我现在团队的约定里面,只要添加了 alpha 也就是预览版,就可以随意推送测试的 Tag 让服务器帮你打包 NuGet 包,然后在其他的项目安装。为什么会鼓励这样做?原因是有小伙伴说我的某个项目的开发依赖某个库

dotnet 配合 GitHub 的 Action 做自动推 Tag 时打包 NuGet 包

陌路散爱 提交于 2020-08-10 15:38:27
被微软收购的 GitHub 越来越好用,拥有大量免费的工具资源和构建服务器资源,再加上私有项目的无限制使用,我有大量的项目都在向 GitHub 迁移。通过 GitHub 的 Action 的自动构建,可以用上微软土豪的服务器资源,进行自动化测试和构建。对于 CBB 来说,发布就是打出 NuGet 包然后上传到内部 NuGet 服务器。此时遇到的问题是,如何在 GitHub 上执行打包,打包的时候如何指定 NuGet 包的版本号。因为 CBB 的特殊性,我要求每个 NuGet 正式发布的包都应该有一个对应的 Tag 号,这样将 NuGet 库安装到项目里面,之后发现问题了还能找到对应版本的代码 在阅读本文之前,期望小伙伴能了解如何在 dotnet 下使用 GitHub 的 Action 进行自动构建,请看 dotnet 部署 github 的 Action 进行持续集成 而发布 NuGet 包的方法请看 dotnet 配置 github 自动打包上传 nuget 文件 本文将在此基础上实现本地推送一个 Tag 到 GitHub 服务器上,就会触发 GitHub 的 Action 的自动构建,自动构建的 NuGet 包的版本就是 Tag 版本。为什么需要在推 Tag 打包,请看 dotnet CBB 为什么决定推送 Tag 才能打包 本文将用到一个 dotnet tool 工具,在

.Net Core微服务入门全纪录(二)——Consul-服务注册与发现(上)

北城余情 提交于 2020-08-10 13:29:43
前言 上一篇【 .Net Core微服务入门全纪录(一)——项目搭建 】讲到要做到服务的灵活伸缩,那么需要有一种机制来实现它,这个机制就是服务注册与发现。当然这也并不是必要的,如果你的服务实例很少,并且很稳定,那么就没有必要使用服务注册与发现。 服务注册与发现 服务注册:简单理解,就是有一个注册中心,我们的每个服务实例启动时,都去注册中心注册一下,告诉注册中心我的地址,端口等信息。同样的服务实例要删除时,去注册中心删除一下,注册中心负责维护这些服务实例的信息。 服务发现:既然注册中心维护了各个服务实例的信息,那么客户端通过注册中心就很容易发现服务的变化了。 有了服务注册与发现,客户端就不用再去配置各个服务实例的地址,改为从注册中心统一获取。 那注册中心又是怎么保证每个地址的可用状态呢,假如某个实例挂了怎么办呢?原则上挂掉的实例不应该被客户端获取到,所以就要提到:健康检查 。 健康检查:每个服务都需要提供一个用于健康检查的接口,该接口不具备业务功能。服务注册时把这个接口的地址也告诉注册中心,注册中心会定时调用这个接口来检测服务是否正常,如果不正常,则将它移除,这样就保证了服务的可用性。 常见注册中心有 Consul、ZooKeeper、etcd、Eureka。 Consul Consul官网: https://www.consul.io/ Consul的主要功能有服务注册与发现

使用 nuget server 的 API 来实现搜索安装 nuget 包

淺唱寂寞╮ 提交于 2020-08-10 07:20:06
使用 nuget server 的 API 来实现搜索安装 nuget 包 Intro nuget 现在几乎是 dotnet 开发不可缺少的一部分了,还没有用过 nuget 的就有点落后时代了,还不快用起来 nuget 是 dotnet 里的包管理机制,类似于前端的 npm ,php 的 composer,java 里的 maven ... nuget 定义了一套关于 nuget server 的规范,使得用户可以自己实现一个 nuget server 也正是这些规范,使得我们可以根据这些规范来实现 nuget server 的包管理的功能,今天主要介绍一下,根据 nuget server 的 api 规范使用原始的 HTTP 请求来实现 nuget 包的搜索和使用 nuget 提供的客户端 SDK 来实现 nuget 包的搜索和下载 Nuget Server Api Nuget 协议介绍 nuget 的协议有好几个版本,目前主要用的是 v3,开源的 nuget server Baget 也实现了基于 nuget protocal v3 的规范 我们添加 nuget 源的时候会指定一个 source url,类似 https://api.nuget.org/v3/index.json 这样的,着通常被称为 Service Index,是一个 nuget 源的入口,有点类似于

在 GitHub 仓库添加 NuGet 版本图标和构建图标

时光怂恿深爱的人放手 提交于 2020-08-10 07:10:25
其实这两篇博客我都写过,但是放在一起方便我新建项目的时候复制代码。在 GitHub 的首页上,很多开源项目都会写出当前构建是通过还是不通过,如果是提供 NuGet 包的还添加 NuGet 版本图标 我推荐在 Github 上使用 Action 构建,此时可以通过 Github 添加 Action 编译图标 这个方法添加构建图标 写法是 ![](https://github.com/组织或个人/仓库/workflows/执行Action的Name注意转码/badge.svg) 而添加 NuGet 版本图标可以使用以下格式 [![](https://img.shields.io/nuget/v/NuGet包的Id字符串.svg)](https://www.nuget.org/packages/NuGet包的Id字符) 看起来上面这个链接复杂的原因是包含了图片和图片点击跳转的链接 仅图片代码是 ![](https://img.shields.io/nuget/v/NuGet包的Id字符串.svg) 而仅链接代码是 [这是链接显示文字](https://www.nuget.org/packages/NuGet包的Id字符) 将链接里面的显示文字替换为图片就是上面代码了 我推荐在首页放下面这个表格 | Build | NuGet | |--|--| |![](https://github

Shone.Math开源系列2 — 实数类型(含分数和无理数)的实现

烈酒焚心 提交于 2020-08-09 21:33:18
Shone.Math开源系列2 实数类型(含分数和无理数)的实现 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp。 摘要: 计算机数值计算存在输入进制误差、计算过程的分数和无理数运算误差,是很多编程开发的痛点所在。开源项目Shone.Math提供了统一的实数类型Real,支持分数和无理数计算,做到精度、性能和存储的各方面平衡,可以消除输入进制误差和分数计算误差,大幅减少无理数的计算过程误差。 Shone.Math 是一个支持Math<T>泛型数值计算和Real实数运算(浮点数、分数、PI,E,Log,Exp等无理数)的轻量级基础数学库 。该项目开源地址 https://github.com/shonescript/Shone.Math ,是本人把多年代码积累正式转向.NET 5的第一个开源项目,请大家多多支持了。 本系列博客上个章节详细介绍了Shone.Math的Math<T>的泛型实现,全面支持了系统数值类型。有评论提到了相关数据精度话题,因此今天就把 Shone.Math的特色—“实数运算” 提前进行介绍。 一、数值计算之殇 大家在编程过程中其实不断在跟各种数值类型打交道,为什么没有可以“一统江湖”的数值类型?目前还真没有! 很多动态语言直接使用double(64位二进制浮点数)作为唯一数值,然并卵

从壹开始前后端分离【 .NET Core2.0/3.0 +Vue2.0 】框架之十 || AOP面向切面编程浅解析:简单日志记录 + 服务切面缓存

时光怂恿深爱的人放手 提交于 2020-08-09 21:29:18
本文3.0版本文章 https://mp.weixin.qq.com/s/pjvleNGi_AazZ7COdxQyPQ 代码已上传Github+Gitee,文末有地址   上回《 从壹开始前后端分离【 .NET Core2.0 Api + Vue 2.0 + AOP + 分布式】框架之九 || 依赖注入IoC学习 + AOP界面编程初探 》咱们说到了依赖注入Autofac的使用,不知道大家对IoC的使用是怎样的感觉,我个人表示还是比较可行的,至少不用自己再关心一个个复杂的实例化服务对象了,直接通过接口就满足需求,当然还有其他的一些功能,我还没有说到,抛砖引玉嘛,大家如果有好的想法,欢迎留言,也可以来群里,大家一起学习讨论。昨天在文末咱们说到了AOP面向切面编程的定义和思想,我个人简单使用了下,感觉主要的思路还是通过拦截器来操作,就像是一个中间件一样,今天呢,我给大家说两个小栗子,当然,你也可以合并成一个,也可以自定义扩展,因为我们是整个系列是基于Autofac框架,所以今天主要说的是基于Autofac的Castle动态代理的方法,静态注入的方式以后有时间可以再补充。   时间真快,转眼已经十天过去了,感谢大家的鼓励,批评指正,希望我的文章,对您有一点点儿的帮助,哪怕是有学习新知识的动力也行,至少至少,可以为以后跳槽增加新的谈资 [哭笑],这些天我们从面向对象OOP的开发

第三十六节:gRPC身份认证和授权(JWT模式 和 集成IDS4)

可紊 提交于 2020-08-09 21:22:24
一. 再谈认证和授权 (详见:https://www.cnblogs.com/yaopengfei/p/13141548.html) 1.认证   是验证身份的一种机制,比如用户名和密码登录,这就是一种认证机制,再比如现在比较流行jwt校验,通过用户名和密码访问接口,验证通过获取token的过程,也叫做认证。 2.授权   是确定你是否有权限访问系统的某些资源. 比如用户登录成功进入系统以后,要进行增加博客这个功能,系统要判断一下该用户是否有权限访问这个增加博客的功能,这个过程就叫做授权。 再比如某个客户端app携带token访问服务端某个api接口,这个时候服务端要校验一下该token是否有权限访问这个api接口,这个过程也是授权。 3.Core Mvc中认证和授权   在Core Mvc中,UseAuthentication()代表认证,UseAuthorization()代表授权, 需要注意的是这里的认证和授权 与 上述广义上的理解有点差异,在Core MVC中,UseAuthentication和UseAuthorization一般 是成对出现,且UseAuthentication认证需要写在上面,且需要在对应的api接口上加[Authorize],代表该接口需要校验, 这样当该接口被请求的时候,才会走UseAuthentication中的认证逻辑。 (PS:

baget 包管理工具使用说明

社会主义新天地 提交于 2020-08-09 16:03:35
1、下载BaGet https://github.com/loic-sharma/BaGet/releases 2、运行BaGet 解压进入解压后的目录 进入命令行 运行dotnet BaGet.dll 命令 成功则显示运行的端口(默认为5000) 3、IIS运行 会存在无法推送的问题 put的时候报500的错误,删除 SQL lite 数据库 重新上传即可 4、推送 dotnet nuget push -s http://<域名|IP>v3/index.json -k <秘钥> <.nupkg 文件所在的路径> 秘钥: appsettings.json文件中的 "ApiKey": "《秘钥》" 来源: oschina 链接: https://my.oschina.net/weibangbang/blog/4297756