Nuget包制作最佳解决方案
https://www.cnblogs.com/drea/p/8418717.html
最近研究ABP框架,下載其全套源碼,想“據為己有”,這樣添加功能或者修改源碼的話就非常方便了,否則搭建項目直接用其官方的Nuget肯定是做不到的。
源碼下好了,取其精華之處,編譯完美運行,然后問題就來了,這么多類庫,如何將他們全部做成Nuget包呢,之前從主管那得到了個制作Nuget包的神器(NuGetPackageExplorer.application),然而制作起來相當費勁,每次都要打開該軟件,一個一個dll的添加,還需要配置相當多的引用,引用版本弄不好就弄錯了,然后整個Nuget就GameOver了,升級起來也相當費勁。
最近做項目,又從主管那得知了制作的新招,采用文件配置方式制作Nuget,那效率杠杠的,廢話不多說,開始吧:
一、安裝(NuGetPackageExplorer.application)
這個肯定是要的,因為Nuget包就是用這個工具來生成的,只是我們把其操作方式改成了文本配置。
二、在VS解決方案里創建.nuget文件夾
其實此文件夾名稱是可以隨意,但是為了區分就給它命名為.nuget咯。
三、在.nuget文件夾里面創建.xml格式的文件,接著將此文件后綴改成.nuspec
為何不直接創建一個以.nuspec文本文件呢?那是因為該文件本身就是xml格式,如果采用文本格式,那么VS就直接將其內容識別成普通的問題咯,更不會有xml相關的提示。
新增的配置文件如下:
四、添加配置內容
<?xml version="1.0" encoding="utf-8"?> <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"><metadata><id>Drea.AutoMapper</id><!--Nuget包名稱--><version>1.0.0</version><!--Nuget包版本--><title>Drea.AutoMapper</title><!--Nuget包顯示名稱--><authors>Drea</authors><!--作者--><owners>Drea</owners><!--所有者--><requireLicenseAcceptance>false</requireLicenseAcceptance><iconUrl>http://drea.cc/favicon.ico</iconUrl><description>1.0.0 原始版本<!--描述(升級記錄)--></description><summary>AutoMapper自動映射</summary><!--簡介--><copyright>?2018 Drea</copyright><!--版權--><language>zh-CN</language><!--語言--><tags>asp.net;asp.net mvc;boilerplate;application framework;web framework;framework;domain driven design;automapper;object mapper</tags><!--標簽--><dependencies><!--項目依賴--><group targetFramework=".NETStandard2.0"><dependency id="Drea.Core" version="1.0.0" /><dependency id="AutoMapper" version="6.2.1" /></group></dependencies></metadata><files><file src="..\src\Abp.AutoMapper\bin\Debug\netstandard2.0\Abp.AutoMapper.dll" target="lib\netstandard2.0\Abp.AutoMapper.dll" /><!--目標Dll所在路徑--></files> </package>其他都好說,但是項目依賴如果有N多個呢,難道要一個一個去找,然后加進來?其實大可不必,VS項目本身的配置文件里面都已經配好了,我們只需要打開項目配置文件,復制粘貼即可。
?
?
注意:PackageRefreshce引用可能位于多個ItemGroup,都要加進去,對于系統引用(.NetFramework)無需加入(自測沒有問題,但是不保證不出問題)
五、進入.nuget所在目錄,打開.nuspec文件,Ctrl+S創建并保存Nuget包
?? 至此大功告成,一定要注意以下幾點:
1、項目引用的Nuget包一定要都配上去!
2、系統引用可以無需配置!
3、Nuget包的版本一定要配對!
轉載于:https://www.cnblogs.com/liuqiyun/p/9198512.html
總結
以上是生活随笔為你收集整理的Nuget包制作最佳解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: upper_bound()与lower_
- 下一篇: python取出字典中的所有值的两种方法