博客有阵子没打理了,今天刚恢复样式,但是标题还是不太正常,总算能凑合看看。

回到正题,最近为了能在VS的程序包管理器控制台上能方便的自定义ps脚本去调整project的package,就开始看powershell的教程,做些笔记。

在nuget控制台场景下的powershell

自定义脚本放哪?

在nuget包管理器控制台中,变量$profile代表一个特定ps脚本文件的路径,这个文件中的

powershell脚本会在每次nuget包管理器控制台启动的时候自动加载。

如果要直接编辑这个脚本,可以使用如下命令:

code $profile //code命令是vscode编辑器
notepad $profile //notepad是用记事本打开这个文件
mkdir -force (split-path $profile) //假如遇到这个文件所在的目录未创建,可用此命令创建目录
. $profile //编辑保存后,重新加载

参考:Setting up a NuGet Powershell Profile

nuget控制台提供的特殊命令

Find-Package #nuget3.0以上版本可用,搜索在线包源
Get-Package #获取当前解决方案本地可用的包源,特定选项也可查询在线包源
Install-Package #这个最常用,安装nuget包
Sync-Package #这个刚发现貌似挺好用,nuget3.0以上可用,获取当前选中项目已安装的指定nuget包版本,并同步其他项目的包版本
Uninstall-Package #卸载nuget包
Update-Package #更新nuget包
Open-PackagePage #打开nuget包相关网页
Get-Project #获取当前项目的引用,平时没啥用,nuget console场景下自定义powershell时威力强大

powershell的注释符号为#

具体命令可用选项,请点击下方参考链接

参考:Package Manager Console Powershell Reference

定制自己的powershell,减少重复工作

安装一系列自己的常用nuget包

项目做多了,有时候发现自己新建项目时,总是要花费半天或者几十分钟去新建一个新项目,一个一个地安装完所有常用的包。

对于码农,这重复劳动不可忍!

打开nuget包管理控制台,输入code $profile,在打开的文件中,输入如下脚本

function Install-PackageForAbpUnitTest{
Install-Package Abp.TestBase -Version 0.9.1.0
Install-Package Abp.EntityFramework -Version 0.9.1.0
Install-Package NSubstitute
Install-Package Shouldly
Install-Package xunit.runner.visualstudio
Install-Package xunit
Install-Package Effort.EF6
} #保存后,在nuget控制台执行 . $profile 重新加载即可使用

这个脚本的作用很明显(可以忽略我在用的Abp框架),怎么使用呢?

1. 在当前解决方案新建一个类库项目(xunit只要是个类库项目就可以)
2. 打开nuget包管理器控制台,选中刚新建的类库项目
3. 在nuget包管理器控制台输入install安Tab,选中`Install-PackageForAbpUnitTest`
4. 然后就等着所有包安装完毕,大功告成。

自动设置项目的环境配置

有些公司对于代码部署有严格的流程规范,一般都有多套环境用于开发、测试、验收、部署生产。

所以项目一般会遇到要使用配置转换的情况,但是每个新建项目都要手动去打开VS的配置管理器,手工添加一个个环境,很麻烦。

function Init-ProjectConfigurationManager{
$PROJ=Get-Project #这个$PROJ还有很多潜力可以挖掘
$PROJ.ConfigurationManager.AddConfigurationRow("DEV","Debug",1)
$PROJ.ConfigurationManager.AddConfigurationRow("GQC","Debug",1)
$PROJ.ConfigurationManager.AddConfigurationRow("PRE","Release",1)
$PROJ.ConfigurationManager.AddConfigurationRow("PRD","Release",1)
#TODO 怎么才能用powershell脚本触发“右键web.config的添加配置转换”?
}

效果,可以自己试试,$PROJ还有很多属性和方法,留给你自己探索哈。

[2016-07-15]nuget包管理器控制台下的powershell脚本介绍的更多相关文章

  1. nuget包管理器控制台下的powershell脚本介绍

    http://personball.com/powershell/2016/07/15/powershell-tips 定制自己的powershell,减少重复工作 安装一系列自己的常用nuget包 ...

  2. 详解.Net 如何上传自己的包到Nuget平台以及如何使用Nuget包管理器

    首先需要一个Nuget账户,可以在官网注册:https://www.nuget.org.已有账户略. 需要一个ApiKeys,登录之后,在我的账户里找到ApiKeys进去; 创建ApiKeys 下载N ...

  3. 华为云提供针对Nuget包管理器的缓存加速服务

    在Visual Studio 2013.2015.2017中,使用的是Nuget包管理器对第三方组件进行管理升级的.而且 Nuget 是我们使用.NET Core的一项基础设施,.NET的软件包管理器 ...

  4. Visual Studio 2013 更新 NuGet 包管理器

    Ø  前言 使用 Visual Studio 中的 NuGet 包管理器下载程序时,有时可能出现类似的错误:. 5.   在"联机"选项中搜索"NuGet",选 ...

  5. 当通过Nuget包管理器获取还原组时,出现 提示 “xxxxx”已拥有为“xxxxx”定义的依赖项

    当通过Nuget包管理器获取还原组件时,出现  提示 “xxxxx”已拥有为“xxxxx”定义的依赖项 时 解决方法: 工具---扩展和更新,把Nuget包管理器卸载后,重启VS,再安装,现打开VS项 ...

  6. .NET持续集成与自动化部署之路第二篇——使用NuGet.Server搭建公司内部的Nuget(包)管理器

    使用NuGet.Server搭建公司内部的Nuget(包)管理器 前言     Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展.在使用Visual Studio开发基 ...

  7. [Visual Studio] 记一次排错:打不开 Nuget 包管理器里的安装package页面,无法 安装 / 恢复 包

    出差一阵子PC很久没用了, 回来在用Visual Studio (2017) 的时候, 工程里无法安装Package了  >_<    --- 也不知道电脑做了什么?--- Nuget包管 ...

  8. 使用腾讯云提供的针对Nuget包管理器的缓存加速服务

    继阿里巴巴开源镜像站(https://opsx.alibaba.com/).华为云镜像站点(https://mirrors.huaweicloud.com/ )之后,腾讯也已于近日上线了类似的服务,官 ...

  9. nuget 包管理器

    nuget 是.Net平台上的包管理器, 对于包的发布(打包 package)和消费(下载依赖管理)都有很好的支持, 本文仅仅关注消费端, =======================nuget项目 ...

随机推荐

  1. Objective-C 自定义UISlider滑杆 分段样式

    效果 自定义一个功能简单的分段的滑杆 可显示分段名 为了显示效果,我们将滑块和节点都设置为不规则 这里只实现了分段的slider,未分段的没有实现,有兴趣的可以定义另一种类型做个判断修改下 需求分析 ...

  2. Codeforces Round #427 (Div. 2)

    B. The number on the board 题意: 有一个数字,它的每个数位上的数字的和不小于等于k.现在他改变了若干位,变成了一个新的数n,问现在的数和原来的数最多有多少位不同. 思路: ...

  3. Hbase 基础 - shell 与 客户端

    版权说明:  本文章版权归本人及博客园共同所有,转载请标明原文出处(http://www.cnblogs.com/mikevictor07/),以下内容为个人理解,仅供参考. 一.简介 Hbase是在 ...

  4. Java 方法重载,方法重写(覆盖),继承等细节注意

    1.方法重载(method overload)的具体规范 如果有两个方法的方法名相同,但参数不一致,那么可以说一个方法是另一个方法的重载. 一.方法名一定要相同. 二.方法的参数表必须不同,包括参数的 ...

  5. JAVA环境变量关于

    1.为什么要设置classPath? 用于通知JVM Java基础类库的位置.classPath告诉类装载器去哪里寻找第三方类库 自JDK1.5之后便不需要再配置这个变量了 2.为什么安装两个JRE( ...

  6. [硬件]_ELVE_VS2015下opencv3.3的配置问题

    0x00  引言 最近想搞一下摄像头,但是我的Windows版本是64位的,opencv3.3貌似也只支持64位系统了,所以就配置一下win10+vs2015+opencv3.3的环境变量,具体下载和 ...

  7. Backpropagation 算法的推导与直观图解

    摘要 本文是对 Andrew Ng 在 Coursera 上的机器学习课程中 Backpropagation Algorithm 一小节的延伸.文章分三个部分:第一部分给出一个简单的神经网络模型和 B ...

  8. Oracle数据库常用关键字以及函数

    常用关键字 insert into---插入数据 delete---删除数据 update---更新一条数据 select---实际工作中尽量不要写* set---设置某些属性 where---给执行 ...

  9. Zabbix监控nginx性能

    编辑nginx的配置文件nging #配置ngx_status location /nginx_status{ stub_status on; access_log off; } #重启nginx # ...

  10. NYOJ--491--dfs(打表水过)--幸运三角形

    /* Name: NYOJ--491--幸运三角形 Author: shen_渊 Date: 15/04/17 16:26 Description: DFS超时,深搜出第一行的所有情况,计算之后打表水 ...