2025年5月25日 星期日

透過指令建置舊專案(.NET Framework)

有一些歷史專案,除非線上系統使用者回報問題,不然很少主動會去開它,但難免就是會輪到

去維護它,由於問題都很小,有時候就想透過簡單的編輯器,修正完之後直接建置



現在較新的專案,比方說 .NET Core 3.1 之後的專案,大都可以使用 dotnet build \ run 來建置

或測試專案,但較舊的專案,往往開發工具也較舊,有時侯不想安裝完整的開發工具,

只想安裝必要工具快速完成後建置收工,希望越短的停留時間越好


開啟 Developer Command for VS 2022


或是開啟 PowerShell


若要建置專案可透過指令來執行

> msbuild E:\dev\project\ConsoleApp\hello.csproj



或是建置方案

> msbuild E:\dev\project\ConsoleApp.sln



以上建置預設是使用debug 模式,若要指定組態可以使用 /p:Configuration=Release

> msbuild E:\dev\project\ConsoleApp.sln /p:Configuration=Release



相關常用參數

/t::指定要執行的目標(如 Build、Clean、Rebuild)


/p::指定屬性(如 Configuration=Release、Platform="Any CPU")


/m:啟用多核心建置


/v::指定輸出詳細程度(minimal, normal, detailed, diagnostic)


> msbuild MyApp.csproj /t:Rebuild /p:Configuration=Release /m



若要建置前要先針對 nuget 還原,可使用以下語法

> nuget restore .\project.sln



須注意有時候建置主機可能沒有安裝相關開發工具,此時須獨立有nuget 執行檔(下載)

而此時執行指令時也需要指定檔案路徑

> d:\nuget.exe restore e:\project\hello.sln



若要將兩個動作串起來可以使用「&&」

> nuget restore .\project.sln && msbuild .\project.sln


發佈專案Publish(沒有 Publish Profile)

> msbuild WebApplication2.sln  /p:Configuration=Release /p:DeployOnBuild=true

/p:WebProjectOutputDir="D:\WebApplication2\Publish\" /p:OutputPath="D:\WebApplication2\Publish\bin\" 

/p:AllowUntrustedCertificate=true



發佈專案Publish(有 Publish Profile)

> msbuild WebApplication2.csproj /p:Configuration=Release /p:WebProjectOutputDir="D:\WebApplication2\Publish\"

/p:OutputPath="D:\WebApplication2\Publish\bin\"

/p:DeployOnBuild=true 

/p:AllowUntrustedCertificate=true






以上打完收工



沒有留言:

張貼留言