博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
windows系统下搭建私有nuget仓储服务器, 打包程序集并推送到私有nuget仓储服务器...
阅读量:5859 次
发布时间:2019-06-19

本文共 2341 字,大约阅读时间需要 7 分钟。

一. 搭建私有nuget仓储服务器

1. 使用Visual Studio创建Web Application项目, .NET Framework选择4.6.1, 空Web项目

2. 安装私有nuget仓储服务器相关包文件

请在程序包管理器控制台中执行 Install-Package nuget.server, 等待完成

3. 修改Web.config配置文件

a. 在system.web节点下, 如果有多个compilation节点, 仅保留targetFramework="4.6.1"的节点, 其他的请删除;

b. 在system.webServer的handlers节点, 只保留verb="GET,HEAD,POST,PUT,DEBUG"的"ExtensionlessUrlHandler-Integrated-4.0"项, 其他的"ExtensionlessUrlHandler-Integrated-4.0"项请删除

1 
2
3
4
5
6
7

c. 设置appSettings节点中的apiKey值, 这个是私有nuget仓储服务器的密钥, 请自己设置

d. 建议将appSettings节点中的allowOverrideExistingPackageOnPush设置为true, ignoreSymbolsPackages设置为false

 

二. 创建目标解决方案

这个是你实际的项目, 省略.

项目目录结构图:

 

二. 打包程序集

  这里我使用powershell脚本方式. 在你的解决方案文件所在目录下创建一个nupkg的目录, 然后在这个目录下创建一个名为pack.ps1的powershell脚本文件, 文件内容如下

# Paths$packFolder = (Get-Item -Path "./" -Verbose).FullName$slnPath = Join-Path $packFolder "../"$srcPath = Join-Path $slnPath "src"# List of projects$projects = (        "MyNugetServer"    )# Copy all nuget packages to the pack folderforeach($project in $projects) {        $projectFolder = Join-Path $srcPath $project    $projectFileName = $project + ".csproj"    Set-Location $projectFolder    Remove-Item -Recurse (Join-Path $projectFolder "bin/Release")      nuget pack $projectFileName -Build -Prop Configuration=Release -OutputDirectory .\bin\Release        # Copy nuget package    $projectPackPath = Join-Path $projectFolder ("/bin/Release/" + $project + ".*.nupkg")    Move-Item $projectPackPath $packFolder -Force}# Go back to the pack folderSet-Location $packFolder

 打开powershell ISE, 转到pakc.ps1文件所在目录, 然后输入./pack.ps1即可开始执行打包任务

 

三. 将打包好的包文件推送到私有nuget仓储服务器

  这里我使用powershell脚本方式. 在你的解决方案文件所在目录下创建一个nupkg的目录, 然后在这个目录下创建一个名为push.ps1的powershell脚本文件, 文件内容如下 

# Paths$nupkgFiles = (Get-Item *.nupkg).FullName# Copy all nuget packages to the pack folderforeach($nupkgFile in $nupkgFiles) {    nuget push $nupkgFile -Source http://127.0.0.1/nuget -ApiKey 12345qwert    Remove-Item $nupkgFile}

  其中设置的apiKey, 请替换成你自己在第一步中设置的值.

  打开powershell ISE, 转到push.ps1文件所在目录, 然后输入./push.ps1即可将你的包文件推送到私有nuget仓储服务器

 

四. 其他

  1. 目录结构不一定要和我的完全一致, 只要你自己的项目目录结构与powershell脚本中的规则一致. 如果你不清楚, 还是根据我的目录结构来吧. 特别要注意的是解决方案文件(sln)的路径, 我是放在项目根目录下的

  2. 描述的不是特别清楚, 如果你有疑问, 请在评论里提出

转载于:https://www.cnblogs.com/oxsir/p/create-a-private-nuget-repository-server_package-and-push-it.html

你可能感兴趣的文章
springMVC笔记系列(12)——使用Servlet原生API的类型参数
查看>>
ubuntu13.04 有线网卡驱动安装 无法上网 网络配置
查看>>
xml格式说明文档
查看>>
Text
查看>>
可见面判别算法---线框图可见算法
查看>>
根据特定的值划分链表 Partition List
查看>>
【原创】MySQL Proxy - query注入动作中的脚本序列
查看>>
MongoDB小技巧-用ObjectID查询某一时间范围内的数据
查看>>
java多线程详解一线程的内存模型和线程特性
查看>>
修改数据
查看>>
Hibernate_01
查看>>
网络互联参考模型(详解)
查看>>
Mathtype与LaTeX相互转换
查看>>
通用社区登陆组件技术分享(开源)上篇:OAuth 授权登陆介绍
查看>>
SpringMVC学习系列(9) 之 实现注解式权限验证
查看>>
hadoop学习笔记-HDFS原理
查看>>
GC日志分析工具GCViewer
查看>>
Kubernetes的四种用户部署场景,你知吗?
查看>>
eclipse中使用maven创建项目
查看>>
JFinal框架操作oracle数据库
查看>>