nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Development Technologies。

Windows TerminalをExplorerのアドレスバーからカレントディレクトリで開く

Explorerのアドレスバーに「wt」と入力するとWindows Terminalを起動できますが、起動時のカレントパスがアドレスバーのパスになってくれない問題の解決方法です。

ただどうも過渡期の問題で、2020年1月7日時点はこの対処方法で対応できますが、将来的にはスマートに解決されるかも?

Windows Terminal: Open terminal in current folder via single command · Issue #620 · microsoft/terminal · GitHub

設定方法

Windows TerminalのSettingsを開きます。

f:id:nuitsjp:20200107055736p:plain

jsonファイルが開かれるため、以下のように各プロファイルでstartingDirectoryを追加します。

{
  "$schema": "https://aka.ms/terminal-profiles-schema",

  "defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",

  "profiles": [
    {
      "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
      "hidden": false,
      "name": "PowerShell Core",
      "startingDirectory": ".",
      "source": "Windows.Terminal.PowershellCore"
    },

必要なすべてのプロファイルに追加しましょう。

以上です。

WPFオブジェクトのライフサイクル

アプリケーションの開始から終了までのイベントの発生順を整理しました。

クラス イベント 補足
Application コンストラクタ
Application Startup
Application Navigating
MainWindow コンストラクタ
MainWindowViewModel コンストラクタ
MainWindow DataContextChanged
MainWindow Initialized
App Activated
MainWindow Loaded
MainWindow Activated ActivatedとLoadedに注意が必要。WindowのフォーカスのON/OFFでActivatedとDeactivatedイベントが発生するが、LoadedはWindowオブジェクト生成初回のみ発生する。
MainWindow Closing
MainWindow Deactivated
App Deactivated
MainWindow Closed
App Exit

ViewModelに関しては、どう設定するかによって大きく変わるので注意が必要です。ここでは以下のようにXAMLに記述しています。

<Window x:Class="Kamishibai.Wpf.Demo.MainWindow"
        ...>
    <Window.DataContext>
        <local:MainWindowViewModel/>
    </Window.DataContext>

DIコンテナからロードする場合も、代替同様になるでしょう。DIコンテナによってやや異なる可能性はありますが。

Visual Studio 2019 Preview 16.4.0 Preview 2.0で.NET Core 3.0が削除される問題の対処方法

まだ未確認ですが、Visual Studio 2019 Previewの16.4.0 Preview 2.0を入れると、.NET Core 3.0が削除されるようです。

RuntimeだけなのかSDKもなのか、詳細は不明です。

これは明らかな不具合で解消する予定だそうです。

今は手動で改めて再インストールすると治るそうです。

手動ダウンロードはこちら。

dotnet.microsoft.com

Visual StudioでNuGetパッケージマネージャーコンソールが開けなくなった場合の対処方法

何もしてないのにVisual Studioのパッケージマネージャーコンソールが壊れました。(ちかって怪しい操作した記憶はありません)

次のようなエラーがでます。

f:id:nuitsjp:20191013194119p:plain

拡張型データ ファイル 、C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2019\PROFESSIONAL\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\NUGET\Modules\NuGet\NuGet.Types.ps1xml: 次の検証例外のため、ファイルがスキップされました: ソフトウェアの制限のポリシー (グループ ポリシーを使用して作成されたポリシーなど) によって操作がブロックされているため、ファイル C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2019\PROFESSIONAL\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\NUGET\Modules\NuGet\NuGet.Types.ps1xml は読み込めません。。 の読み込み中に次のエラーが発生しました。

探すとMSの証明書が信頼できない証明元として登録されているからだという情報を見つけました。

github.com

なのでIEのインターネットオプションから削除します。

f:id:nuitsjp:20191013194254p:plain

注意すべきは「certlm.msc」からではないということです。

SQL ServerのサンプルDB「AdventureWorks」のDockerイメージを公開しました

SQL Serverのサンプルデータベース「AdventureWorks」をDocker上のSQLサーバーで利用するためのコンテナイメージを公開しました。

cloud.docker.com

これを利用することでローカルにSQL Serverをインストールすることなく、AdventureWorksを利用することができ、クリーンな環境でデータベース接続アプリケーションの評価などに利用できます。

なおDocker初心者なのでDockerfileが本来はあまり良くないかもしれません。特にSQL Serverを明示的に停止していないあたり?ご指摘あればIssueたてて頂けると助かります。

https://github.com/nuitsjp/docker-adventureworks/blob/master/Dockerfile

続きを読む

開発ツールの自動構成スクリプトを公開して、変更案を募集してみる

以下に主にChocolateryを利用した開発環境の自動インストールスクリプトを公開してみました。

全部じゃないですけどね?恥ずかしいし・・・。

github.com

Chocolateyの概要と簡単な使い方はこちら。

www.nuits.jp

でせっかくなら、これ便利だよあれ入れなよ的な意見を募集してみたいと思います。GithubのIssuesに書いていただいたりPR頂けると嬉しいです。

ドシドシ投稿お待ちしております!(マサカリはソフトに投擲ください)

  • よく利用する開発対象は以下の通り
    • WPF
    • ASP.NET Core
    • .NET Core Console Application
    • .NET Core Windows Service
  • Azure・・・は趣味で触る程度
  • 基本はChocolateryで入れたい
  • でもVisual Studioなど無理がある場合は、別途できるだけCLIで入れたい

Chocolatreyによるインストール

install-choco.cmdを実行するとChocolateryをインストールし、chocolatery.configに設定しているアプリを一括でインストールします。多分。

CubePDFとCubePDF Utilityはハッシュが違うと怒られるけど、一応忘れないように書いておいてあります。

SSMSが英語で入ってしまうのが悩み。最新でもないし。

Visual Studio

インストーラーをダウンロードして「vs_professional.exe」にリネームする。

そのあとinstall-vs-pro.cmdを実行する