在内部架设NuGet服务器

NuGet私有服务器ProGet Docker搭建和公司中实战用法 可能不同项目在不同的组不同的负责人,通知起来也麻烦。推送完成就可以在NuGet服务器上在到这个包了,这里的时间比服务器少了一个时区8小时,是因为容器时区问题,在启动Docker时加上-v /etc/localtime:/etc/localtime:ro即可解决,前面的启动命令已经加上了。很多公司中架构师会搭建一个统一的项目基础架构模板,然后全部新项目都会拿这个基础架构来开发新的项目,那架构中就会有很多的中间件,比喻公司内部的封装好的Redis中间件,访问数据库的中间件,MQ中间件,小程序中间件等等。 阅读详情
Nuget是一个 .NET平台下的开源的项目,它是 Visual Studio的扩展。在使用 Visual Studio开发基于.NET Framework的应用时,Nuget能把在项目中添加、移除和更新引用的工作变得更加快捷方便。
Nuget是 ASP .NET Gallery 的一员。NuGet 是免费、开源的包管理开发工具,专注于在 .NET 应用开发过程中,简单地合并第三方的组件库。
当需要分享开发的工具或是库,需要建立一个Nuget package,然后把这个package放到Nuget的站点。如果想要使用别人已经开发好的工具或是库,只需要从站点获得这个package,并且安装到自己的Visual Studio项目或是解决方案里。
NuGet能更方便地把一些dll和文件(如jquery)添加到项目中,而不需要从文件中复制拷贝。
=====================================================================================

在公司内部有很多基础框架或者基础组件,甚至对于使用SOA架构的公司来说,会有大量的业务组件的契约程序集,对于这些框架或组件的引用管理有的人使用源代码管理工具,但是NuGet相比源代码管理工具更方便:

1) 安装和卸载:不需要手动添加和移除引用,不需要手动改写配置文件甚至是一些初始化服务的代码。版本升级也只需要执行一条命令。

2) 打包:多文件打包,支持依赖管理等,使用的人没有繁琐的配置。

对于官方的包,可以在http://www.nuget.org/ 找到,自己也可以提交包上去。但是如果不希望把包公开的话,可以在内部架设一个NuGet服务器。

下面介绍一下基本步骤以及如何进行打包。

1) 下载 NuGetServer.rar (包含源代码,改编自mceranski-nugetserver,找不到原始下载地址了)编译后,发布到内网服务器上。这个MVC3网站有几个功能:

一是提供Nuget的服务,提供所有包的信息,供VS2010中NuGet包管理器使用

二是提供了几个页面,可以上传包也可以浏览所有的包

三是提供了一个web服务,可以供程序在编译后自动上传包

2) 下载 Lib.rar (仅是可执行文件),解压缩到解决方案目录下的Lib目录中。这个压缩包里提供了两个程序:

一是官网提供的NuGet.exe小工具,可以打包文件称nupkg

二是自己写的一个上传包到NuGet服务端Web服务的小工具,这里是源代码,它会上传最新编译的那个包

3) 配置需要打包的项目的属性:

image

IF NOT "$(ConfigurationName)"=="Release" EXIT /B 0
IF NOT EXIST $(SolutionDir)ReleasePackages MD $(SolutionDir)ReleasePackages
$(SolutionDir)Libs\NuGet.exe Pack $(ProjectDir)$(ProjectName).nuspec -o $(SolutionDir)ReleasePackages\
$(SolutionDir)Libs\NuGetPackageUploader.exe $(SolutionDir)ReleasePackages\

这段脚本完成的功能是:

如果是Release方式编译的话,先创建ReleasePackages文件夹,然后调用NuGet.exe 打包,最后调用NuGetPackageUploader.exe 上传包

4) 在项目中创建[项目名].nuspec,包描述文件:

<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata>
    <id>WcfExtension</id>
    <version>1.0.0.0</version>
    <title>WcfExtension</title>
    <authors>作者</authors>
    <projectUrl>项目地址</projectUrl>
    <description>A communication framework based on Wcf</description>
  </metadata>
  <files>
    <file src="bin\Release\*.dll" target="lib" />
    <file src="bin\Release\*.transform" target="content" />
  </files>
</package>
在这里,我们把所有的dll打入包,并且还把用于转换配置文件的transform文件打入包。

为了自动在配置文件中增加节点,我们在项目文件下创建app.config.transform和web.config.transform,设置为:

image

文件内容和普通的配置文件无异:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" />
  </configSections>
  <appSettings>
    <add key="configservice_address" value="192.168.129.11:1888/WcfConfigService.svc" />
    <add key="logservice_address" value="192.168.129.12:1889/WcfLogService.svc" />
    <add key="redis_address" value="192.168.129.175" />
    <add key="redis_message_client_channel" value="WcfConfigClientChange"/>
    <add key="redis_message_service_channel" value="WcfConfigServiceChange"/>
  </appSettings>
  <unity configSource="unity.config" />
</configuration>

5) 以release编译项目之后,可以发现ReleasePackages中多了一个包,并且这个包会上传到远程的NuGet服务端。

image

如果没有上传成功,请检查NuGetPackageUploader.exe.config中的地址是否修改为你部署的服务端的地址。

6) 在官网安装了VS2010的NuGet包管理器插件之后:

image

配置一下NuGet服务端地址应该就可以看到自己上传的所有包了:

image

如果你的网站部署到nuget.xxx.com,那么这里的地址填写nuget.xxx.com/nuget就可以了。

找到包点击Install按钮就可以安装上这个组件了。

打开包管理器控制台,输入get-help NuGet,可以看到其它的一些命令:

------------------        ----------------------------------------------
Get-Package                Gets the set of packages available from the package source.

Install-Package            Installs a package and its dependencies into the project.

Uninstall-Package        Uninstalls a package. If other packages depend on this package,
                        the command will fail unless the –Force option is specified.

Update-Package            Updates a package and its dependencies to a newer version.

New-Package                Creates a new package when supplied with a Nuspec package specification file.

Add-BindingRedirect        Examines all assemblies within the output path for a project and adds binding
                        redirects to the application (or web) configuration file where necessary.
                   
Get-Project                Returns a reference to the DTE (Development Tools Environment) for the active
                        or specified project.

作者: lovecindywang
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

在本机搭建私有NuGet服务器 有时我们不想对外公开源码,同时又想在VisualStudio中通过Nuget包管理器来统一管理这些内部动态库,这时就可以在本地搭建一个NuGet服务器。 阅读详情

相关推荐

手把手教你搭建使用NuGet私有源

简单理解它其实就是一个微软开发的包管理工具,就好比如JAVA中的Maven,Node中的NPM,Python中的PIP等等,其实目前大部分主流的编程语言都有自己的包管理工具。

shaojiayong的博客 4805

项目框架构建之3:Nuget服务器的搭建

本文是“”系列之3,本文介绍一下Nuget服务器的搭建,这是一项简单的工作,您或许早已会了。

C#开发 926

自建Nuget服务器

java有Maven,.net有Nuget,概念就不一一阐述了,自己百度。下面直接进入正题,自建Nuget服务器Demo源码。

在内部架设NuGet服务器(转)

在公司内部有很多基础框架或者基础组件,甚至对于使用SOA架构的公司来说,会有大量的业务组件的契约程序集,对于这些框架或组件的引用管理有的人使用源代码管理工具,但是NuGet相比源代码管理工具更方便: 1) 安装和卸载:不需要手动添加和移除引用,不需要手动改写配置文件甚至是一些初始化服务的代码。版本升级也只需要执行一条命令。 2) 打包:多文件打包,支持依赖管理等,使用的人没有繁琐的配置。 对...

weixin_30699443的博客 63

CH340以及CH系列USB转串口驱动下载

在之前使用USB转串口时,很多时候大家可能会不知道去哪下载驱动,然后百度随便下载一个,但往往鱼龙混杂且版本不一,所以今天特意整理一下CH340驱动以及CH系列的官方驱动下载地址,方便大家进行下载也方便自己后期查找,所有链接皆指向官方下载链接,每次下载都可获取官方当前最新驱动。 CH340/CH341 Windows驱动下载链接:CH341SER.EXE下载链接 Linux驱动下载链接:CH341SER_LINUX.ZIP下载链接 Andr...

OIDCAT的博客 4万+

OpenWebUI外部模型配置异常排查与修复指南

本文详细解析了OpenWebUI外部模型配置异常的常见问题及解决方案,包括隐藏字符、数据库锁死等典型现象。通过错误日志分析和数据库修复实战指南,帮助开发者快速定位并解决配置问题,确保OpenWebUI与第三方大模型的稳定连接。

weixin_29205061的博客 310

在内部架设NuGet服务器(转载)

合肥程序员群:49313181。合肥实名程序员群:128131462(不愿透露姓名和信息者勿加入)QQ:408365330 E-Mail:egojit@qq.com 在公司内部有很多基础框架或者基础组件,甚至对于使用SOA架构的公司来说,会有大量的业务组件的契约程序集,对于这些框架或组件的引用管理有的人使用源代码管理工具,但是NuGet相比源代码管理工具更方便: 1...

weixin_30783629的博客 138

Flutter项目在M1/M2 Mac上跑iOS模拟器报错?手把手教你搞定‘arm64架构不兼容’问题

本文详细解析了Flutter项目在M1/M2 Mac上运行iOS模拟器时遇到的‘arm64架构不兼容’问题,提供了多种解决方案,包括排除模拟器的arm64架构、强制使用x86_64架构以及修改插件Podspec文件。帮助开发者快速解决架构兼容性问题,提升开发效率。

weixin_33713707的博客 336

使用NuGet发布自己的类库包(Library Package)

原文:http://www.cnblogs.com/daxnet/archive/2013/05/07/3064577.html#undefined uGet是一个为大家所熟知的Visual Studio扩展,通过这个扩展,开发人员可以非常方便地在Visual Studio中安装或更新项目中所需要的第三方组件,同时也可以通过NuGet来安装一些Visual Studio的插件等。作为一名开发

每天进步一点点 1584

C# Log4Net不输出日志的解决方法

log4net是一个流行的 .NET 日志框架,用于记录应用程序的日志信息。如果你在使用log4net。

精通搬砖,资深技术砖家,在软件开发,人工智能,设备开发等领域都有研究。商业合作&交流学习可私信联系。 1263

大学物理第二章 质点动力学详解

大学物理第二章 质点动力学概念详解

weixin_63026364的博客 1万+

[转]超详细图解:自己架设NuGet服务器

本文转自:http://diaosbook.com/Post/2012/12/15/setup-private-nuget-server   超详细图解:自己架设NuGet服务器         汪宇杰                         2012-12-15 星期六 14:18            NuGet 是.NET程序员熟知的给...

weixin_34226182的博客 425

Synopsys工具filter命令:从数据筛选到高效IC设计的实战指南

在数字集成电路设计流程中,数据筛选与查询是工程师处理海量网表、时序报告和设计约束的核心需求。其原理在于通过声明式查询语言,直接对设计对象(如单元、网络、路径)的属性进行逻辑判断与模式匹配,从而精准定位目标。这种技术价值在于将工程师从繁琐的过程式脚本循环中解放出来,大幅提升代码可读性与运行效率,直接调用工具内置的高性能查询引擎。在实际应用场景中,它广泛用于物理与时序联合分析、层次化模块操作、动态约束生成以及自动化报告生成。本文聚焦于Synopsys工具链中filter命令的高阶用法,深入解析其表达式语法、正则

weixin_28007513的博客 577

超详细图解:自己架设NuGet服务器

NUGET

北极星的专栏 1481

量化投资从0开始系列 ---- 15. 郑商所日统计数据

前面已经提取了其它期货交易所的数据,最后还剩下郑商所。相比而言,郑商所的数据获取比其它几个交易所更麻烦一点。因为郑商所的系统接口有两个,在2015年11月11日前后发生了切换,这个日期之前是老系统的api接口,这个日期之后是一个新的api接口。 具体的地址在哪里,还是依靠在浏览器中按F12来确定,最后发现的地址是: if trade_date > '20151111': czce_url = f'http://www.czce.com.cn/cn/DFSS

kengxie的博客 2112

PCL 点云加权均值收缩

PCL 点云加权均值收缩

dayuhaitang1的博客 689

搭建企业内部的Nuget服务器

搭建和使用企业内部的Nuget服务器 1. 搭建内部nuget服务器 1.1 创建一个空的Asp.Net Web Application 项目.我们选择.Net Framework4.5.2 1.2 选择Empty模板,点击OK 1.3 通过Nuget安装NuGet.Server.我们选择2.10.3版本 安装后会自动生成网站文件...

weixin_30855761的博客 570

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

架设自己的NuGet服务器

架设自己的NuGet服务器 注:本文主要参考了( 在内部架设NuGet服务器 )和(介绍下Nuget在传统Asp.net项目中的使用),只是原本说的比较简略,本文做了一些补充,更适合新接触NuGet的朋友,在此感谢原作者的分享。   可以参考文NuGet学习笔记(3) 搭建属于自己的NuGet服务器 一、什么是NuGet NuGet(http://nuget

北极星的专栏 2210

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

通过ProGet搭建一个内部的Nuget服务器

.NET Core项目完全使用Nuget 管理组件之间的依赖关系,Nuget已经成为.NET 生态系统中不可或缺的一个组件,如何使用ProGet搭建一个内部的NuGet服务器

dotNET跨平台 1114

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

在VS中自动生成NuGet包以及搭建自己的或单位内部的NuGet服务器

关于NuGet的介绍已经很多,可以参考下面的: NuGet学习笔记(1)——初识NuGet及快速安装使用 http://kb.cnblogs.com/page/143190/ NuGet学习笔记(2)——使用图形化界面打包自己的类库http://kb.cnblogs.com/page/143191/ NuGet学习笔记(3)——搭建属于自己的NuGet服务器 http://kb.cnbl...

Andrewniu的博客 2221
上一篇: Oracle临时表GLOBAL TEMPORARY TABLE
下一篇: Oracle中使用SQL语句修改字段类型
High_Mount
博客等级 码龄20年 49粉丝 41原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值