Asp.net-Core

如何在 ASP.NET Core 中基於解決方案配置執行腳本

  • January 5, 2017

我的project.json文件中有以下腳本,用於將我的類庫項目建構到 NuGet 包中。我不想建構任何調試 NuGet 包。如何將此腳本限制為僅在解決方案配置設置為發布模式以加快調試模式下的建構時間時執行?

或者,出於好奇,我如何將解決方案配置傳遞到下面的命令中,這樣“發布”就不會被硬編碼。

"scripts": {
 "postcompile": [
   "dotnet pack --no-build --configuration Release"
 ]
}

您可以使用%compile:Configuration%獲取目前配置。precompile是可用於和postcompile腳本的變數列表。

要根據配置實際限制 nuget 包的創建,您需要將其傳遞到腳本中,例如我儲存在項目根目錄中的 makeNuget.cmd 文件:

@Echo off
IF "%1" == "%2" dotnet pack --no-build --configuration %1 -o ../%3

然後,在我的 project.json 中,我有:

 "scripts": {        
   "postcompile": [
     "makeNuget.cmd %compile:Configuration% Release \\packages\\%project:Name%"
   ]
 }

這將創建 nuget 包並將其放置在我的解決方案級別包中/

$$ project name $$文件夾(儘管您可能需要根據解決方案佈局調整 -o 參數中的相對文件夾引用)。此外,您不需要 .cmd,預設情況下,為 windows 推斷 .cmd,為其他環境推斷 .sh。 我還將目標配置設置為參數,以便腳本是通用的,並且無論我選擇作為“發布”配置的配置名稱如何,都可以使用該腳本。

引用自:https://stackoverflow.com/questions/37596115