發表文章

VS2019開啟2010 asp.net專案,在發佈時出現錯誤(目標 "GatherAllFilesToPublish"不存在於專案中)

繼上次vs2010無法連上AzureDevOps的問題排除之後,事隔一年,又開始無法連上了,不知道微軟又調了什麼,於是開始認真考慮把專案移到新的Visual Studio開發,考量一些因素,後來決定用vs2019開發。 經過一些前置作業,就在專案正常建置成功,準備要發佈時,出現了「錯誤 MSB4057:目標 "GatherAllFilesToPublish"不存在於專案中。」 想說這又是什麼東東@@,又google了一番,有人分享了自己遇到的情況,也提供了解決方法。 按照文章的方式嘗試了一下,果然可行,這邊就筆記一下怎麼調整。 打開專案檔(.csproj),將原來專案內容 <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" /> 替換為 <PropertyGroup> <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> </PropertyGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(VSToolsPath)

VS2010無法連線Azure DevOps問題排除

圖片
近日開啟 VS2010 發現無法連上 Azure DevOps 個人空間,但同一台機器的 VS2017 卻可正常連線,由此可見是 VS2010 發生問題。   查了一下發現從 2022 年 3 月 31 日 Azure DevOps 不再接受 TLS 1.0/TLS 1.1 ,都要改成 TLS 1.2( Azure DevOps requires TLS 1.2 on all connections including Visual Studio ) ,因為 VS2010 預設非採 TLS 1.2 協定,所以出現連線錯誤訊息。   因為仍需保留 VS2010 開啟專案,所以嘗試了文章內所提供的方法 ( Enable support for TLS 1.2 in your environment for Azure AD TLS 1.1 and 1.0 deprecation ) ,從環境一直設定到 .NET Framework ,註冊相關的機碼。   有關環境的設定,選擇 下載 了簡易修正程式,安裝後再進行 .NET Framework 啟用 TLS 1.2( 依機器環境選擇相對應的設定 ) ,註冊完畢之後需重開機。 最後終於成功連上😄。

使用Debug Diagnostic Tool (DebugDiag)找出應用程式錯誤(0xc00000fd:stack overflow)

圖片
個人負責維護的網站在平時運行正常,但每遇到業務旺季,上線人數變多時,伺服器就會跳出錯誤提醒,問說要不要除錯。 進入事件檢視器,看到錯誤事件的內容: 雖然知道錯誤是0xc00000fd:stack overflow,但不曉得是哪支程式或是哪個function造成,從朋友那邊得知DebugDiag這個工具可以收集Dump資訊,並分析錯誤,立馬下載實作。 設定收集規則 1.安裝好後,點選DebugDiag 2 Collection 2.點選新增規則→選擇規則類型,因為要捕捉Crash的dumps,所以就選Crash→下一步 3.選擇目標類型,因為已鎖定要補捉應用程式集區的錯誤,所以就選「A specific IIS web application pool」→下一步 4.設定目標應用程式集區→下一步 5.進階設定→調整dump數量上限,預設是10個,依需求自行調整,要注意數量越多,所需的儲存空間越大→因為已鎖定特定事件(0xc00000fd:stack overflow),所以點選「Exceptions…」 6.點選新增例外事件 7.選擇例外事件代碼→C00000FD→按ok 8.按下Save & Close,完成例外事件設定 9.點選下一步 10.完成規則設定,選擇是否立即啟用規則,按完成 11.完成後在介面可以看到設定的規則,然後就放著等待錯誤發生。 分析捕捉到的dump檔 1.點選DebugDiag 2 Analysis 2.分析視窗→先加入dump檔→再勾選要做的分析,這邊勾Default Analysis→按Start Analysis 3.分析完畢會產出報告,檔案格式為.mht,Report預設目錄在C:\Users\{username}\Documents\DebugDiag\Report。 最後從報告中找到了造成Stack Overflow的錯誤點,解決了這個困擾我許久的問題,真是太開心了(撒花)。

Mac遠端登入Windows鍵盤小筆記

平常使用Windows桌機工作,外出偶爾會攜帶公司的Mac筆電,並遠端回公司的工作機。因為Mac的鍵盤和Windows的鍵盤有點不同,太久沒用就會忘記,所以將會用到的鍵盤記錄下來,省下四處google的時間。 Windows Mac 說明 Alt + Tab option ⌥ + Tab ⇥ 視窗切換 Delete fn + Delete ⌫ 刪除 Shift ⇧ Shift Shift + Ctrl + I Control ⌃ + Shift ⇧ + I Chrome 、 Microsoft Edge 顯示或隱藏開發人員工具

解決網頁列印無法呈現背景圖片問題

圖片
之前寫了列印網頁指定區塊的功能,但最近才發現,在列印預覽時,背景圖片(寫在css)有時可正常顯示,有時候無法顯示。經過一番測試發現好像網頁還沒完全載入,列印預覽視窗已經跳出,所以直接列印出來也就不會有背景圖。 為了確保網頁完全載入才跳出列印視窗,最後將window.print()寫在window.onload事件觸發時才呼叫,如此一來就正常顯示背景圖了。 另外在測試的程過中,試過以setTimeout()延遲呼叫window.print(),但此方法有缺點,如果在設定的時間內,網頁的css、圖片還沒載入完成,還是會發生看不到背景圖的狀況。 最後還是將window.print()寫在window.onload事件為佳。

.htaccess 設定轉址,因新網址有含錨點(anchor)發生404錯誤

圖片
昨日收到Google Search Console每月報表,得知舊網站有部份網頁仍會被外部搜尋到,產生流量,需做301轉址到新網站,原以為參考先前寫過的轉址規則可以很快的「打完收工」,沒想到轉址後卻發生404錯誤。 原因出在新網址包含了錨點(#),經由轉址後「#」變成了「%23」,導致發生網頁不存在的404錯誤。 後來找到 mod_rewrite with anchor link 這篇文章,發現在 RewriteRule Flags 加上NE就可以確保#正常的呈現。

如何在ASP.NET中使用<label>標記?

由於工作上的web專案仍然使用web form開發,為了套bootstrap樣式,需要把lable控制項轉換成<label>記標,本來以為沒得解,卻無意找到這篇 文章 ,原來只要在label控制項設定AssociatedControlID屬性,指定好對應的控制項id,在網頁產出html的時候,就變成<label>😀。 官方文件: Label.AssociatedControlID Property