1. 程式人生 > >.Net Core 編譯的一些陷進以及各種坑集合

.Net Core 編譯的一些陷進以及各種坑集合

CoreCLR 以及CLI編譯:

   1.下載CMake(最好最新版) ,新增環境變數(微軟利用這個跨平臺公共語言執行庫生成工具)

   2 Python(最好最新版,且用Install形式安裝,如果用Zip安裝(有兩個版本,一個嵌入式,一個EXE.這兩個都不行,裡面似乎沒有自帶的Pip,導致整個指令碼引導錯誤) (用到了 Python指令碼引導)新增到變數

   3.PowerShell 安裝4.0及其以上的版本(低於4.0 將導致ps檔案無法引導)

以上安裝成功如下:

生成成功如下

   

 

 

 

WebHost 以及Hosting等類庫編譯

基本的步驟:

1.到github clone source(這個版本可以因第三步而異,如果編譯不過,可以切換2.0.0以上的任何分支再次進行編譯)

2.搭建本地nugetserver(在引用了nuget.server之後,在.net 4.6.1版本中,要刪除complie target選項,VS會生成兩個造成衝突,注意apikey的key值,預設為空,可以給它新增一個,以便以後上傳包)

3.編譯clone下來的source(編譯不通過可以檢視powershell版本,以及其script設定情況,根據提示修改,也可以到github下載另外一個版本進行編譯,一般的情況下,除了wehost和webhostbuilder所在的metapackages和hosting意外,其它的類庫都很容易編譯成功)

4.新建一個空.netcoreweb,引用本地nugetserver上面的包,以便進行除錯。

 

預設的生成成功之後,會在sln或者csproject下面有artifacts資料夾,裡面是當前專案所編譯的所有包。由於編譯複雜度有點高,請慎入。

 

請求被終止,未能建立SSL/TLS 安全通道

請求被中止: 未能建立 SSL/TLS 安全通道。
所在位置 C:\Users\Administrator\Desktop\Configuration-rel-2.0.0\Configuration-rel-2.0.0\build.ps1:25 字元: 17
+                 throw $exception
+                 ~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [], WebException
    + FullyQualifiedErrorId : 請求被中止: 未能建立 SSL/TLS 安全通道。

解決方法:

在 build.ps1中 新增

[System.Net.ServicePointManager]::SecurityProtocol=[System.Net.SecurityProtocolType]::Tls12
Invoke-WebRequest https://

powershell最低版本必4.0及其以上,越高越好。

假如說編譯某個版本出現了錯誤,可以到github clone 2.00以上的任何版本下載下來,進行編譯。

.\build 自帶的有symbol 符號庫,可以直接連線到visual studio 進行原始碼檢視

也可以用dotnet pack 或者nuget spec pack 進行編譯打包,然後上傳到nugetserver,本地引用新增

visual stuido 可以直接識別下載的nuget ,假如說原始碼與nupkg 不在同一臺機器上編譯的(在一臺機器上編譯了Nupkg ,在另一臺機器上使用這個包),VS會彈出對話方塊,然後進行對話方塊選擇。如果是同一臺,它會自動識別當前source位置,進行檢視。(Java/.NET討論群:676817308)