2019年5月8日 星期三

ASP.NET Core 的內建 DI

以讀取預設的 appsetting.json 為例


{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  }
}



建立存放 appsetting.json 的類別 MySetting.cs


public class MySetting
{
    public Logging Logging { get; set; }
}

public class Logging
{
    public LogLevel LogLevel { get; set; }
}

public class LogLevel
{
    public string Default { get; set; }
}



在 Startup.cs 的 ConfigureServices 中註冊


public void ConfigureServices(IServiceCollection services)
{
    services.Configure<mysetting>(Configuration);

    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}



在 Controller 中使用 IOptions <mysetting>注入


public class HomeController : Controller
{
    private IOptions<mysetting> myOption;

    public HomeController(IOptions<mysetting> _option)
    {
        myOption = _option;
    }
}



新增 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>
警告就消失了

超簡單 Jenkins 安裝 MSBuild 外掛一鍵發佈 Visual Studio 專案

進入到 Jenkins 系統






























進入「管理 Jenkins」的「管理外掛程式」的「可用的」的「MSBuild」























安裝完畢,勾選重啟 Jenkins

管理 Jenkins->Global Tool Configuration

找到 MSBuild












輸入 MSBuild 的預設路徑
版本:15(X86) 名稱:VS 2017(x86)路徑: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin
版本:15(X64) 名稱:VS 2017(x64)路徑: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\amd64

建立新工作
































Enter an item name 輸入個工作名稱
選擇「建置 Free-Style 軟體專案」
點擊「OK」























點擊「建置」
選「Build a Visual Studio project or solution using MSBuild」
選擇「MSBuild Version」
填入「MSBuild Build File」專案路徑
按下「儲存」

























MSBuild 的 Command Line Arguments 可以指定 Debug 或 Release 組態等功能:
這些指令接續要多一個空白
/t:Restore :代表如果沒有Nuget套件他會幫你做還原的動作
/t:rebuild :代表他不管怎樣都會重新建置這個專案
/p:Configuration=Release :選擇你想要建置的版本(Debug、Release、Any CPU等)
/p:DeployOnBuild=true:允許建置完發行
/p:PublishProfile=FolderProfile.pubxml:選擇要發佈的檔案
/p:AllowUntrustedCertificate=true:允許未經信任的認證
/p:Password=IIS 發行的使用者密碼
/p:Configuration=組態名稱

右邊有一個編譯按鈕
W 下方的太陽表示編譯成功
點進去「上次成功時間」






點擊「Console Output」可以看到編譯結果的紀錄




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

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