Nuget私有库搭建 打包依赖问题

之前就有在公司做私有库的搭建:

1、直接写个bat 命令,在VS中配制菜单,可在项目上右键发布。(网上很多这种教程)

  1.1 版本号问题无语

  1.2 项目多了也是无语

2、之前的技术群友推荐用了一个工具NuPack的VS插件

  可能是我太菜,不太会用,还是觉得麻烦,项目多了,一起打包累

3、就是脚本了,这个方便,快,还打包的全

看了很多网上的资料,就第三种最好用,小改一下就能通吃

网上遇到最多的问题就是 打包后 没有把依赖也一起打包,这就是个坑 我找了很久,被自己蠢屎,还是要多看官网文档。

就是看了这篇文档,什么事都解决了:https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-pack

我的思路是这样的:

A、先把所有项目release编译 来一波 脚本 build-all.ps1

# COMMON PATHS
$rootFolder = (Get-Item -Path "./" -Verbose).FullName

# List of solutions
#要编译的文件目录列表,也可以是根目录
$solutionPaths = (
    "framework",
    "modules/users",
    "modules/permission-management"
)

# Build all solutions

foreach ($solutionPath in $solutionPaths) {
    $solutionAbsPath = (Join-Path $rootFolder $solutionPath)
    Set-Location $solutionAbsPath
    #release
    dotnet build -c release
    if (-Not $?) {
        Write-Host ("Build failed for the solution: " + $solutionPath)
    }
}

Set-Location $rootFolder
pause

B、再生成Nuget包 并推送

# COMMON PATHS

$rootFolder = (Get-Item -Path "./" -Verbose).FullName
#定义当前发布包版本号
$version = "1.0.0.1"

# List of solutions

$solutionPaths = (
    "framework",
    "modules/users"
)

# Build all solutions

foreach ($solutionPath in $solutionPaths) {
    $solutionAbsPath = (Join-Path $rootFolder $solutionPath)
    Set-Location $solutionAbsPath
    #查找所有*.csproj文件 并遍历
    Get-ChildItem -Path $solutionAbsPath -Include *.csproj -Recurse |`
    foreach{
        $Item = $_
        $Path = $_.FullName
        $ParentS = ($_.Fullname).split("\")
        $Parent = $ParentS[@($ParentS.Length - 2)]
        $BasePath="E:\LocalNuGet\NugetConfig\Packer"
        #组合发布名文件名
        $FileName = "$BasePath\Temp\$Parent.$version.nupkg"
        #这里的好戏来了,是 donet pack 不是 nuget pack ,以及后面的命令也不同,参考上面的文档,用这个命令 dotnet pack 就能根据csproj里面拿到包的依赖     #因为上面已经release了,所以这里不用重复编译
        dotnet pack --no-build --no-restore -c release -p:PackageVersion=$version --output "$BasePath\Temp"
        #下面这个也能打包,但是,不能把包依赖打包,也是服,不要用不要用
        ##nuget pack $Path -c release -Version $version -OutputDirectory "$BasePath\Temp"
        #下面这里就推送到 私有库
        nuget push $FileName "10086" -Source "http://192.168.18.122:10086/nuget"
        #干完上面的事,就从临时文件夹移出来
        move $FileName $BasePath

        if (-Not $?) {
            Write-Host ("Build failed for the solution: " + $solutionPath)
            Set-Location $rootFolder
            exit $LASTEXITCODE
        }

    }

}

Set-Location $rootFolder
pause                        

以上两步为什么不放在一起,而要分开两步呢?

嗨,大家试下就知道,两步放一起项目多的话 要多久了,反正我一百多个项目打包放一起一个下午没了 才跑完,分开跑快的不是一点半点

先留记录在这里 备忘!

原文地址:https://www.cnblogs.com/JalanWang/p/12055746.html

时间: 2024-10-23 03:44:45

Nuget私有库搭建 打包依赖问题的相关文章

ubuntu npm 私有库搭建 (npmjs.org 官方版本)

目标 npm.xxx.com 安装和推送nodejs包 npmui.xxx.com 管理已经推送的nodejs包 安装 couchdb https://launchpad.net/~couchdb/+archive/ubuntu/stable 里面有 14.10  14.04 和 12.04的   PPA地址 安装不在这里讨论 安装 couchdb 1.6.1 1.初始化 访问“http://localhost:5984/_utils/” 新建名字为  registry 库 异步 同步官方nod

Nuget私有服务搭建实战

最近更新了Nuget私有服务器的版本,之前是2.8.5,现在是2.11.3. Nuget服务器的搭建,这里有篇很详细的文章,跟着弄就好了: https://docs.microsoft.com/en-us/nuget/hosting-packages/nuget-server 不过我在做的过程出现了个令我非常困惑的问题:程序按部就班做好我就扔到IIS上,但一直提示404,但以前一直是好的,且这个问题基本上Google不到相关信息.经过一番倒腾排错之后我郁闷的发现错误的原因在于我的项目名称起了一个

pod私有库资源打包及使用

pod私有库中资源要制作成bundel包才可以使用,不像工程中直接使用,下面讲解下如何制作如何使用 1.新建bundel 2.将图片拖入bundel中 3.删除多余文件 4.修改podspec 指定资源路径 5.拖入aseets 6.pod install 然后调用 原文地址:https://www.cnblogs.com/lijianyi/p/11475053.html

如何使用CocoaPods安装使用及配置私有库以及管理依赖库 【原创】

CocoaPods是什么 在iOS开发中势必会用到一些第三方依赖库,比如大家都熟悉的ASIHttpRequest.AFNetworking.JSONKit等.使用这些第三方类库能极大的方便项目的开发,但是,集成这些依赖库需要我们手动去配置,例如集成ASIHttpRequest库时除了加入源码以外还需要手动去添加一些系统框架,比如CFNetwork.MobileCoreServices等,如果这些第三方库发生了更新,还需要手动去更新项目.这就显得非常麻烦.有麻烦自然有解决办法,CocoaPods就

在 Docker 搭建 Maven 私有库

在 Docker 搭建 Maven 私有库 小引 If you are developing software without a repository manager you are likely missing a number of opportunities to reduce some pretty obvious inefficiencies. If everyone on your team has to hit public repositories like the Centr

基于微软开发平台构建和使用私有NuGet托管库

本篇blog包含使用TFS2017,VS2017等平台和工具搭建和使用NuGet库等基本过程,为团体提供更加自动化和高效的研发活动支持. 作为以产品线或者以专属业务为扩展的项目类型的软件研发团体,都会有自己的基础软件框架和功能模块的软件产品智力资产库.团队无形智力资产的积累和最大化使用,不仅是组织的软件成熟度能力的体现,更是软件企业或团体研发成本和经济效益的最大化平衡的有效手段.在研发团队中,开发一个大型的项目或产品通常会使用许多的公共类型的资源以及企业内部的一些基础资源,比如开源的前后端框架.

本地搭建CNPM私有库

主要是玩玩CNPM私有库,理解里面的原理,有助于部署到服务器上和使用私用库来管理代码. 一.环境准备: 1.Windows操作系统: 2.MySQL数据库(支持'mysql', 'sqlite', 'postgres', 'mariadb'.这里选择MySQL) 3.CNMP私有库源码(https://github.com/cnpm/cnpmjs.org) 二.搭建系统 CNPM源码目录结构 1.将docs文件夹里面的db.sql部署到MySQL中: 开启MySQL->打开GUI界面->创建一

satis 搭建 Composer 私有库的方法

安装 satis 命令行下执行: php create-project composer/satis --stability=dev --keep-vcs . 配置 创建 satis.json 文件,如官方示例: {"name": "My Repository","homepage": "http://packages.example.org","repositories": [{ "type&q

Java 工程打包成库需要依赖其它外部库的打包方式

2019-06-14 关键字:Java 打包.jar 打包依赖 经常会有将 Java 工程打包成一个 jar 库的形式以供其它工程调用的需求.而我们需要被打包成 jar 库的工程中也难免会有需要依赖外部其它 jar 库的情况.比如,我们自己开发一个通过 HTTP 访问网络资源的工程,这个工程需要解析 XML 文件,我们通常不会自己从零开发 XML 解析的功能,网络上已经有很多现成的 XML 解析 jar 库,直接拿来用就好了.在这种情况下,我们自己的 HTTP 访问网络资源工程在开发好以后,如果