為啥做這個呢,因為要将公司内部的老的.NET程式所引用的DLL進行統一管理。這裡服務端使用了一個叫做NuGetServer(官網:NuGet Server)的開源工具,部署在内部的Web伺服器上。
制作NuGet包,我是先從.NET Standard 2.0的SDK風格的檔案去建立的,特别容易。但是.NET 4.0這種廢了好大周折!
試過直接通過DLL生成,但是會遇到包描述、版本等資訊不自動更新的問題,最重要的DLL所引用的NuGet.org的包,不能自動包含進去。
也試過通過指令行進行每個單獨的Project進行生成,也遇到包描述、版本等資訊不自動更新的問題。NuGet.Org的包沒問題。
最後呢使用Tools>External Tools(工具>外部工具)定義了一個指令。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAjM2EzLcd3LcJzLcJzdllmVldWYtl2Pn5GcuAzNlJzNhdjM5MGMiBzMmNWYzcDZwcDMyYmNlBTN1UDOvwlM4kDM1UTMtUGall3LcVmdhNXLwRHdo9CXt92YucWbpRWdvx2Yx5yazF2Lc9CX6MHc0RHaiojIsJye.png)
要確定MSBUILD和NUGET好用,需要找到系統環境變量,添加路徑(記得重新開機電腦,以便生效)。
找到Path項
1、增加:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin
2、增加:E:\VS\DotNet.WMS.US\DLL\DotNet
第一個是MSBuild,如果你是VS 2019社群版,直接複制,如果不是,請找到相應的路徑。
第二個是NuGet.exe的目錄,請選擇您自己的目錄。
這塊設定參考這篇文章:https://www.cnblogs.com/chenug/p/9290281.html
指令:del *.nupkg ; roj=dir *.csproj ;MSBuild roj; nuget pack roj ; nupkg= dir *.nupkg;執行目錄選擇
需要生成的時候,點選一下要生成的Project,然後就可以點選Tools > 4.0NuGet指令
稍等片刻就生成了。
這樣生成的包在Project的根目錄,但是版本和描述資訊呢都不對,請自動修改檔案名和檔案内部的描述檔案内容。
用啥軟體打開,7-ZIP即可,因為包就是一個壓縮包。