發表文章

VS2019 Report Viewer CreateFontPackage Exception

圖片
前言 同事回報開發時期在debug時,會出現如下訊息,但不影響執行結果。 原因 Microsoft.Reporting.WebForms 15.0後,在IIS Express 32位元會出現此問題。 解決方法 改用IIS Express 64位元: Tools --> Options --> Projects and Solutions --> Web Projects 參考連結 https://stackoverflow.com/a/60049627/4872843

VS2019 Report Designer 問題排除

圖片
前言 同事回報Vs2019的報表檔案無法建置。相關訊息如下: Severity    Code    Description    Project    File    Line    Suppression State Error        The "RdlCompile" task was not found. Check the following: 1.) The name of the task in the project file is the same as the name of the task class. 2.) The task class is "public" and implements the Microsoft.Build.Framework.ITask interface. 3.) The task is correctly declared with <UsingTask> in the project file, or in the *.tasks files located in the "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin" directory.     WebApplication5             Severity    Code    Description    Project    ...

Jenkins - 使用Java rumtime 64位元

圖片
前言 同事回報Jenkins建置時,發生錯誤:StackOverflowError,查詢相關文章後,判斷跟JVM使用記憶體上限有關。 解決方法 在jenkins.xml將記憶體調高,不過在32位元下的Java runtime下,最多只能調到1.5G左右, 我目前的設定值為1024mb 。鑑於目前C I主機有足夠的記憶體,可以讓Jenkins好好發揮。所以試著將Java runtime 改成64位元,才可以設定更高的記憶體。 1. 下載java runtime 64 位元 。本文安裝路徑:C:\Program Files\Java\jre1.8.0_241 2.修改jenkins.xml。 executable : 原為Jenkins內建的jre,改成jre 64位元安裝位置。ps:要指定.exe副檔案,網頁才有辨法執行。 arguments :本例 X2048m 為設定記憶體到2G <service>   <id>jenkins</id>   <name>Jenkins</name>   <description>This service runs Jenkins continuous integration system.</description>   <env name="JENKINS_HOME" value="%BASE%"/>   <!--     if you'd like to run Jenkins with a specific version of Java, specify a full path to java.exe.     The following value assumes that you have java in your PATH.   -->   <executable>C:\Progr...

vs2019 unable to connect to iis express

圖片
問題 今天一開工要執行Web專案時,就出現一個莫名的錯誤訊息"unable to connect to iis express"。將專案重新開啟也一樣會持續發生。 解決方式 到方案目錄下,將檔案總管的隱藏項目打開。將.vs目錄刪除即可。 其它參考 https://developercommunity.visualstudio.com/content/problem/599446/unable-to-connect-to-web-server-iisexpress-unless.html

Jenkins - 使用FTP發行程式

圖片
目前有一支Console程式,在Jenkins建置後,會發行到內部網路的其他主機。現在有一需求是要跨Internet到遠方主機。想來想去,透過FTP好像是唯一可行的方式。 安裝Publish Over FTP 安裝後,到Configure,建立FTP的登入資訊。 紅框打勾後,會使用 一條連線完成所有傳輸 。避免被FTP Server判定為使用太多條連線,而發生錯誤。 透過Pipeline執行FTP 以下為透過Pipeline Snippet Generator產生的語法。但產生後,會缺少2個參數,少了這2個,建置會報錯,如下紅字。 configName:KimFtp  在Configure設定好的組態檔。 sourceFiles: '**/**' 所有檔案及子目錄 ftpPublisher paramPublish: null,masterNodeName:'' ,alwaysPublishFromMaster: false, continueOnError: false, failOnError: false, publishers: [[configName: ' KimFtp ', transfers: [[asciiMode: false, cleanRemote: false, excludes: '', flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: ' **/** ']], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false]] 其它/參考 Publish Over FTP

Visual Studio 快速切換方案檔

圖片
前言   今天在Visual Studio 2019 的方案總管視窗,發現了一個小功能,可以讓你在同一資料夾下,快速切換方案檔。如下範例程式,資料夾內有7個專案及2個方案檔。 SolutionViewLab.sln 包含所有專案 SolutionViewLab-Lite.sln 只有使用2個專案 如何使用 在方案總管內,先切換到 Folder View。   切換後,會幫你將該目錄下的方案列出來,此時你就可以隨時切換你想要的方案檔。 總結 以往開發時,會針對近日常使用的方案作開啟,而想切換至另一個專案性質不同的方案時,則要再另外開啟。這樣的 作法,雖然可以,只是每次需要重新載入專案檔,較浪費時間。而此切換的作法,速度明顯快很多。

使用WIX建立Window安裝程式 - 包含.Net Framework

圖片
前言        此篇是接續,前一篇[ 使用WIX建立Window安裝程式 - 基本安裝 ],本文要來介紹如何在安裝時,順便將離線檔的.Net 4.8也順便安裝好。 建立Bootstraper安裝專案 1.選擇專案樣板:Bootstrapper Project for Wix v3。此專案用來將多個安裝專案及必要條件,作封裝用。 2.加入應用程式專案、前一篇建立的Setup,以及相關extension參考,如下圖的(1) 另外圖的第2點Resources目錄下有一個.net 4.8的離線安裝程式,等會我們會把它封裝入安裝程式內。ps:此檔案不會在Github的原始檔內,因為檔案太大無法簽入。需要的話請 另外下載 3.打開Bundle.wxs,修改如下圖,此為部份設定,完整的請參考 Github的完整程式 。關於此檔案的設定,實現的功能如下: PackageGroup : 指定.net framework 4.8的檢查條件及安裝來源、命令等。 Chain : 設定安裝順序,本例:先安裝.net 4.8後再安裝Setup.msi。 設定完畢後,按建置會產出一個Setup.exe檔案,此檔案已含安裝程式.msi及.net 4.8安裝程式,安裝畫面如下: 用戶端沒有安裝.Net 4.8的話,會先安裝: 安裝完畢後,若此次有安裝.Net4.8,會要求重新開機。 若本來已有的話,則會出現Launch 按鈕。 參考連結 Sample  (主要參考) http://www.shisujie.com/blog/WiX-ToolsetIndex Bootstraper theme Sample https://www.shisujie.com/blog/Install-the-dotNet-Framework-Using-Burn

使用WIX建立Window安裝程式 - 基本安裝

圖片
前言        目前有一支.Net 4.8的Window程式,要讓使用者下載來安裝。在安裝過程,若用戶端沒有安裝.Net 4.8的話,也要在安裝過程中一併加入。關於.Net Framwork的安裝,以個人之前的經驗, 若採用線上安裝的話,在某些情況下,常會發生一些奇怪的問題(例如:防火牆、網路中斷等),而導致安裝失敗。所以打算用離線的安裝來解決此問題。 一開始是使用Visual Studio傳統的安裝專案,但封裝後的安裝檔,在給使用者安裝,沒那麼直覺,它會產出2個檔案: Setup.msi : 主要的應用程式安裝,若不考慮.net的執行條件的話,可以直接使用這個安裝。 Setup.exe : 會先檢查必要條件後,例:.net 4.8。再進行msi的安裝。 上述,勢必要先作一個壓縮檔,給使用者下載後,再解壓縮來安裝才行。 WIX Setup 研究相關的安裝工具後,找到Wix這個不錯的安裝工具,它是透過XML格式定義安裝元表,並在Visual Studio有對應支援的專案樣板。開始必須先安裝如下: 專案樣板 : Wix Toolset Visual Studio 2019 Extension SDK : https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311.exe 安裝後的路徑:C:\Program Files (x86)\WiX Toolset v3.11\bin\ 程式要參考的dll位置。 建立第一個安裝專案 1.選擇專案樣板: Setup Project for Wix v3。主要的安裝專案,輸出msi 。不考慮安裝.net framework的話,可以直接用這個。 2.加入應用程式專案參考,本例為WpfApp 3.加入Wix Extension參考,本例參考WixUIExtension,瀏覽路徑:C:\Program Files (x86)\WiX Toolset v3.11\bin\ 4.打開Product.wxs,修改如下圖,此為部份設定,完整的請參考 Github的完整程式 。關於...

.Net Core IIS 503錯誤

圖片
這兩天試著把測試的Blazor App部署到IIS後,一執行就出現503錯誤,並且Pooling整個停止。 測試環境: .Net Core 3.0 Window 10 Build 17763 部署方式 503錯誤 一開始Google時查到的解決方式,大部份的文章都是裝完 ASP.NET Core Runtime & Hosting Bundle ,即可解決。但我安裝完, IIS及電腦都重開機過,但依然出現503錯誤。 查詢"事件檢視器"後,發現一些缺少.dll的錯誤。如下列表: The Module DLL C:\Windows\System32\inetsrv\isapi.dll failed to load.  The data is the error. The Module DLL C:\Windows\System32\inetsrv\iiswsock.dll failed to load.  The data is the error. The Module DLL C:\Windows\System32\inetsrv\iprestr.dll failed to load.  The data is the error. The Module DLL C:\Windows\system32\inetsrv\aspnetcore.dll failed to load.  The data is the error. 上述訊息,不是一次性的全部出現,是在我根據訊息,查詢到的可能缺少的元件,安裝後,再出另一個的訊息....昏。由於是本機測試,不管三七二十一,也不太確定是哪個安裝修正哪個錯誤了。 相關安裝: IP Address and Domain Restrictions Web Socket Web Deploy 3.6 在解決了一系列的錯誤後,最後還有另一個奇怪的錯誤要修正。為何寫在這,沒有列在上方? 因為它的解決方式較特別。 The Module DLL C:\Windows\system32\inetsrv\aspnetcor...

Try.Net - 建立互動式文件

圖片
   這兩天看在Net conf 2019,看到一個蠻有趣的介紹。配合Markdown編輯及讀取既有程式碼的方式,變成一份線上可以即時互動的說明文件。 直接看範例 ,比較容易懂。 安裝說明 1.打開command視窗, 安裝dotnet-try dotnet tool install --global dotnet-try --version 1.0.19317.5 2.在專案加入Package參考,這個套件為alpha,Include prelease要打勾,才看得到。 專案類型: .Net Core 3.0 ConsoleApp。 System.CommandLine.DragonFruit System.CommandLine.Experimental   3.修改Program.cs  修改進入函式的參數,新增region,此為判斷進入的文件要指定該呼叫哪個函式用。 新增2個測試函式Intro,Collections。函式內需要被線上執行的部份,使用region區段區隔。 4.在專案目錄的上層新增一個文件目錄"mydoc",並加入檔案如下: Readme.md,此為文件首頁進入點。 HelloWorld.md 底下程式碼片碼 紅框 為重點,指定此區段的參數,該呼叫哪個程式檔案及區段。 ps:文件目錄不能放在專案目錄內,經測試後,會造成找到重複類別的錯誤。 測試程式 在 文件目錄下執行命令。 dotnet try 執行後,會開啟文件首頁。 進入Hello World連結後,會看到Program.cs的程式碼已帶出來,並可以直接執行。 其它參考 .netConf Beyond Copy + Paste : Creating Interactive Documentation 微軟教學文件 文章範例