顯示具有 Visual Studio 標籤的文章。 顯示所有文章
顯示具有 Visual Studio 標籤的文章。 顯示所有文章

2019年8月15日 星期四

微軟移除 Visual Studio 的官方工具 InstallCleanup.exe

當無法修復或解除安裝 Visual Studio 時,
可以透過 InstallCleanup.exe 工具來移除所有安裝的 Visual Studio。

 InstallCleanup.exe 工具所在的目錄:
C:\Program Files (x86)\Microsoft Visual Studio\Installer\resources\app\layout\InstallCleanup.exe

2019年7月23日 星期二

Blazor for .Net core 3.0.100-preview6-012264 無法用 Visual Studio 2019 偵錯問題解決方法


在 Chrome 中收到 ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY 錯誤
在 Firefox 中收到 NS_ERROR_NET_INADEQUATE_SECURITY 錯誤

請執行下列命令來更新開發憑證:

dotnet dev-certs https --clean
dotnet dev-certs https --trust

2019年7月3日 星期三

上傳私有 NuGet 到 Azure 發生 The specified source '你的 Nuget 名稱' is invalid. Please provide a valid source. 的解決方法

試了兩種上傳方式 nuget.exe push -Source "你的 Nuget 名稱" -ApiKey CArk "*.nupkg"

nuget.exe push -Source "你的 Nuget 名稱" -ApiKey CArk "%1/NuGet路徑.%2.nupkg"
後一直失敗







結果發現,問題是我在 Visual Studio 設定的 NuGet 名稱跟 Azure 不一樣



























所以才一直發生錯誤


2019年7月2日 星期二

測試中意外刪除了一些快取,讓系統多出了快 10 GB


輸入 dotnet nuget locals --clear all

info : 正在清除 NuGet HTTP 快取: C:\Users\user\AppData\Local\NuGet\v3-cache
info : 正在清除 NuGet 全域套件資料夾: C:\Users\user\.nuget\packages\
info : 正在清除 NuGet 暫存快取: C:\Users\user\AppData\Local\Temp\NuGetScratch
info : 正在清除 NuGet 外掛程式快取: C:\Users\user\AppData\Local\NuGet\plugins-cache
info : 已清除本機資源。

執行的有點久,但是執行完,C 槽就增加了 10 GB左右。

類似 Visual Studio 的 「清除所有 NuGet 快取」

2019年5月29日 星期三

Visual Studio 版本號介紹與說明

Visual Studio 一般常見的版本號樣式

























是以 1.2.3.4 的樣式呈現

對應在英文上

為 Major(1).Minor(2).Build(3).Revision(4)



現在針對每個欄位的意義

做一個簡單的說明



Major

通常是大更新,使的程式無法向下相容,這個版號會遞增



Minor

也是大更新,但是程式可以向下相容,這個版號會遞增



Build

通常是一些小更新,例如:修正 Bug,這個版號會遞增

PS.這個欄位也有人用更新日期代表



Revision

通常是內部版本,或修正安全性漏洞,這個版號會遞增







Visual Studio 2017 發佈後,執行批次檔(配合 pscp、plink 一鍵更新遠端 Ubuntu 伺服器檔案)

首先先要設定完發佈設定檔 FolderProfile.pubxml

再來修改檔案內容


  <Target Name="ExecuteBatAfterPublish" AfterTargets="AfterPublish">
    <Exec Command="C:\Batch\WinToUbuntu.bat" WorkingDirectory="$(publishUrl)" />
  </Target>






















PS.記得 *.bat 檔案檔案屬性要選「永遠複製」不然執行階段會出現找不到批次檔的訊息















還有 *.bat 檔案在專案編譯後在根目錄下 Exec Command=WinToUbuntu.bat 可以不需要 *.bat 路徑。

批次檔內可以利用上次提到的 pscp 將檔案複製到遠端的 Ubuntu 伺服器內
就能做到一鍵發佈並更新遠端 Ubuntu 檔案
例如:
pscp -i "C:/ppk/ubuntu.ppk" -pw password *.* user@1.2.3.4:/home

plink 可以執行遠端的 Ubuntu 指令
例如:
plink -ssh -i ubuntu.ppk user@1.2.3.4 -pw password cd /home; ls;

PS.
1.寫完 *.bat 檔案,記得實際操作 pscp 與 plink 指令測試一次,這樣 Register 會記錄過授權記錄, *.bat 才能正常執行。

2.Windows 10 安裝 PuTTY 後,pscp 與 plink 的路徑會被引用,所以不需要複製 pscp 與 plink 的執行檔。























2019年5月23日 星期四

Visual Studio 2017利用 T4 自動產生版本號(寫入 Git 版本號)


「工具」 「擴充功能與更新」

安裝「T4Executer 」後 T4 的關鍵字都會有對應的顏色標示

























安裝 「Devart T4 Editor」可以設定編譯前先執行 T4 範本

























設定編譯前執行 T4 (圖為執行狀態)














設定畫面
























新建文字檔 附檔名為 *.tt
就會出現「轉換所有 T4 範本」
點擊就會執行 T4 範本




















首先註解 AssemblyInfo.cs 裡面的
[assembly: AssemblyFileVersion("0.0.0.0")]

[assembly: AssemblyTitle("ConsoleApp")]
下面的 SharedInfo.tt 檔案(T4 範例)
會自動產生一個 SharedInfo.cs
並自動填入
[assembly: AssemblyFileVersion("0.0.0.0")]

[assembly: AssemblyTitle("ConsoleApp")]
的內容


<#@ template debug="false" hostspecific="true" language="C#" #>
<#@ import namespace="System.IO" #>
<#@ assembly name="$(SolutionDir)\CommitID\bin\Debug\netstandard2.0\MyLibrary.Git.dll" #>
<#@ import namespace="MyLibrary.Git" #>
<#@ assembly name="C:\Program Files\dotnet\sdk\2.1.700-preview-009597\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\netstandard.dll" #>
<#@ output extension=".cs" #>
<#
     int major = 0; 
     int minor = 0; 
     int build = 0; 
     int revision = 0; 
  
     try
     {
         using(var f = File.OpenText(Host.ResolvePath("SharedInfo.cs")))
         {
             // 取值做 +1 使用
             //string maj = f.ReadLine().Replace("//","");
             //string min = f.ReadLine().Replace("//","");
             //string b   = f.ReadLine().Replace("//","");
             //string r   = f.ReadLine().Replace("//","");
  
             // 轉成日期
             string maj = DateTime.Now.Year.ToString();
             string min = DateTime.Now.Month.ToString();
             string b   = DateTime.Now.Day.ToString();
             string r   = DateTime.Now.Minute.ToString() + "0" + DateTime.Now.Second.ToString();

             major    = int.Parse(maj); 
             minor    = int.Parse(min); 
             build    = int.Parse(b); 
             revision = int.Parse(r) + 1; 
         }
     }
     catch
     {
         major    = 1; 
         minor    = 0; 
         build    = 0; 
         revision = 255; 
     }

    // 呼叫自己個函式庫
 CommitID.GetCommitID();
 string gitver = CommitID.ID;
 #>
 //<#= major #>
 //<#= minor #>
 //<#= build #>
 //<#= revision #>

 //<#= gitver #>

 // 
 // This code was generated by a tool. Any changes made manually will be lost
 // the next time this code is regenerated.
 // 
  
 using System.Reflection;
  
 [assembly: AssemblyFileVersion("<#= major #>.<#= minor #>.<#= build #>.<#= revision #>")]
 [assembly: AssemblyTitle("<#= gitver #>")]



MyLibrary.Git 是我寫的 .NET Standard Library
透過


<#@ assembly name="$(SolutionDir)\CommitID\bin\Debug\netstandard2.0\MyLibrary.Git.dll" #>
<#@ import namespace="MyLibrary.Git" #>


使用 .NET Standard Library 還要加入 .NET Standard 的 dll


<#@ assembly name="C:\Program Files\dotnet\sdk\2.1.700-preview-009597\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\netstandard.dll" #>


不然編譯會有錯誤訊息:
錯誤 正在編譯轉換: 類型 'Object' 定義在未參考的組件中。您必須加入組件 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' 的參考。

請依據自己的 dotnet 版本選擇目錄,例如:我的是 net461














2019年5月22日 星期三

Visual Studio 2017 / 2019 自動產生版本號 Automatic Version 2

在「擴充功能與更新」安裝 Automatic Version 2




























「工具」欄位會多一個 「Automatic Version Setting」

























設定一下版本號的規則
記得先指定 「Custom System Version」
左邊如果選的是「User's Global Default」
皆下來每個專案都會自動產生版本號
一般都會指定專案(左邊最下面的那個)
做自動生產專案設定
































接下來編譯就會自動更新版本號了


































2019年5月8日 星期三

新增 NuGet 後出現編譯警告 warning MSB3276 與 "AutoGenerateBindingRedirects" 屬性設為 true 的解決方法

新增 NuGet  後出現編譯警告



1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild
\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2110,5)
: warning MSB3276: 在同一個相依組件的不同版本之間發現衝突。
請將專案檔中的 "AutoGenerateBindingRedirects" 屬性設為 true。
如需詳細資訊,請參閱 http://go.microsoft.com/fwlink/?LinkId=294190。

只要在 *.csproj 內加入


// '<'與'>'被改成全形了,記得改回來半形
<autogeneratebindingredirects>true</autogeneratebindingredirects>
警告就消失了

2019年4月26日 星期五

Visual Studio 2017 超簡單連線到 MySQL

下載 MySQL for Visual Studio 1.2.8
https://dev.mysql.com/downloads/windows/visualstudio/

點選 No thanks, just start my download.

安裝完畢
選擇是「伺服器總管」、「資料連接」並按下滑鼠右鍵「加入連接」
點選「變更」選擇 MySQL並填入 URL、帳號、密碼與資料庫名稱
測試連線正常就能開始操作資料庫了





Release 版本編譯錯誤:工作無法使用 SdkToolsPath 的解決方法....

錯誤:

工作無法使用 SdkToolsPath

"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\"

或登錄機碼

"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\NETFXSDK\4.7.2\WinSDK-NetFx40Tools-x86"

找到 "sgen.exe"。
請確認已設定 SdkToolsPath、工具位於 SdkToolsPath 底下的正確處理器專屬位置,且已安裝 Microsoft Windows SDK

只要「關閉」掉「產生序列化組件」就能編譯成功。


2019年2月26日 星期二

Microsoft Visual Studio 無法連接到 Web 伺服器 'IIS Express' 的解決方法

今天莫名其妙出現「無法連接到 Web 伺服器 'IIS Express'」的錯誤訊息













一直無法 Debug
查了一下專案「屬性」設定














修改「偵錯」頁籤
的「應用程式 URL」後面得 Port
就能正常偵錯了

2018年8月13日 星期一

Visual Studio 2017 / 2019 Lua 語法標示的比較

Visual Studio 2017 NPL_LuaLanguageService

Visual Studio 2019 Syntax Highlighting Pack



















目前使用的 Lua 語法標示
Visual Studio 2019 目前沒的選,只能用 Syntax Highlighting Pack
Visual Studio 2017 目前有3種選擇,我先選了 NPL_LuaLanguageService
大家可以參考一下。

2018年8月7日 星期二

Visual Studio 2017 好看的程式碼的字型

工具 -> 選項 -> 環境 -> 字型與色彩






















選擇字型 Consolas 大小選 14
這樣就可以看到清晰與放大的程式碼了!

Visual Studio 2017 / 2019 擴充功能與更新 Viasfora 工具介紹

工具 → 擴充功能與更新































選擇「線上」搜尋「Viasfora」並安裝
























原本「程式碼」如下:

安裝後,「程式碼」如下:






















「程式碼」視窗從此不再是單調了!

Visual Studio 2019 擴充功能與更新 VSColorOutput 工具 && Visual Studio 2017 擴充功能與更新 Output enhancer 工具介紹

工具 -> 擴充功能與更新































選擇「線上」搜尋「VSColorOutput」並安裝

原本「輸出」如下:

安裝後,「輸出」如下:













這下可以讓單調的「輸出」視窗製造一些彩色了!

「輸出」視窗最下面的訊息可以關掉

工具 -> 選項 -> VSColorOutput 改 Yes, I Donated! 為 True






















就能關閉「輸出」視窗的廣告訊息了

目前 VSColorOutput 在 Visual Studio 2017 已經停止更新了

現在正在試用 Output enhancer 中
下面是 Output enhancer 的使用畫面截圖




































2018年7月21日 星期六

依據組態 Debug 或 Release 設定 App.config

 安裝「擴充功能與更新」的 「 Configuration Transform」
























在 「App.config」 按下右鍵,選取「Add Config Transforms」




































會依據組態產生 App.config







App.config 新增一組 appSettings
<appSettings>
      <add key="VER" value=""/>
</appSettings>

App.Debug.config 新增一組 appSettings

<appSettings>
      <add key="VER" value="DEBUG" xdt:Locator="Match(key)" xdt:Transform="Replace" />
</appSettings>

App.Release.config 新增一組 appSettings

<appSettings>
      <add key="VER" value="RELEASE" xdt:Locator="Match(key)" xdt:Transform="Replace" />
</appSettings>

VER 就會依據對應的組態設定 value 的值

PS.後面加了兩個設定:

Locator 限制條件,透過設定 Match(key) 來要求置換目標的 key 值必須相同才會執行轉換
Transform 轉換方法,透過設定 Replace 來將置換目標的 value 值換成來源值

2018年7月17日 星期二

讀取 App.config 中的內容

在 App.config 中新增一筆資料

<appSettings>
  <add key="KEY" value="VALUE"/>
</appSettings>

將「System.Configuration」加入參考
加入:using System.Configuration;

利用下列程式碼,就能取出 App.config 中的內容
string Value_ = ConfigurationManager.AppSettings["KEY"];
執行後,Value_ 的值將會是 VALUE

Visual Studio 2017/2019 推薦的擴充功能與更新

參考文章: 覺得 Google 的 Blogger 不太順手?透過 HTML 的 iframe 移花接木 HackMD