Windows Management Framework 5.1公開

Windows Management Framework(以下WMF) 5.1がリリースされたそうで、記事を読んでいると、WMF5.0以降でDSCのサポートが強化されていたことに気が付く。

以前にPowershell DSCを使ってクライアントPCのソフトウェア資産管理をできないかと考えたことがあったのだが、Windows10以前のOSについてはPowershellからOSの環境設定を変更するようなコマンドレットが殆どサポートされておらず、結局あきらめたのだ。

いつの間にやらPackageManagementやらGet-NetworkSwitchEthernetPortなど、当時ほしかった機能が提供されているようだ。近いうちに、また試してみたいな。

Visual Studio 2015での.NET Core開発

.NET CoreはLinux環境で開発を・・・と思ったのだけど、結局使い慣れたWindowsに戻ってきました。.NET Core(Windows)の開発環境構築手順などを残しておきます。

1. .NET Core SDKのインストール
.NET DownloadsからWindows版の.NET Core 1.1 SDK – Installerをダウンロードしてインストールする。

2..NET Core tools preview for Visual Studioのインストール
.NET Core installation guideに従って.NET Core tools preview for Visual Studioをインストールします。これで新規プロジェクト作成時に.NET Coreプラットフォームを選択する事ができるようになります。

3. 新規にコンソールアプリケーションを作成して実行します。

といった感じで開発環境を作るだけならとっても簡単。ただし困りものなのが.NET Coreで使用できるライブラリの取捨選択・・・。
例えばHTTPクライアントを実装したい場合System.Net.WebClientは.NET Coreに対応しない。System.Net.Http.HttpClientは.NET Coreに対応するが個別にNuGetからダウンロードが必要。System.Data.SqlClientはNuGetからダウンロードすれば使えるけど、SqlDataAdapter クラスは存在しないのでDataSetを使うことは出来ない。AzureStorageの依存情報を見ると.NET Coreの記述が無いので使えないのかと思いきや、NuGetでダウンロードする前におまじないを書けば使えたりします。万事この調子なので慣れるまでは大分苦労しそうです。

Acrobat Readerのインストールに繰り返し失敗する

Adobe Readerの更新インストールなどを行っていると、再インストールに失敗することがあります。公式ページにはエラーになった場合は一度Adobe Readerをアンインストールするように記載されています。ですがアンインストールを行っても、再インストールに繰り返し失敗する場合があります。

そんな時には「Acrobat Reader Cleaner Tool」の出番です。インストールしていたAdobe readerのバージョンにあったCleaner Toolをダウンロードして管理者ユーザーで実行するとアンインストール時に残ってしまったゴミデータを削除してくれます。

その後、あらためてAdobe Readerの再インストールを試みてください。

参考:Acrobat Reader(Adobe Reader) および Acrobat 用の Cleaner Tool について(Windows)

.NET Coreを使ってみる(Ubuntu)

.NET CoreをUbuntuに導入して、現在Windows上で動作させているバッチ処理をLinuxに移すことを考えています。

.NET Coreのインストール方法はMicrosoftの.NET Core(https://www.microsoft.com/net/core#ubuntu)のページがわかりやすいです。

sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ xenial main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
sudo apt-get update
sudo apt-get install dotnet-dev-1.0.0-preview2-003131

以上でインストールは完了。
Ubuntu 14.xの場合には設定するリポジトリが次のように変わるので注意して下さい。

sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'

Hellowordプロジェクトを作成して動作を確認します。
以下のコマンドで適当にディレクトリを作成して、新規プロジェクトを作成します。新規プロジェクトにはHellowordと表示する処理が既に記述されています。

mkdir hwapp
cd hwapp
dotnet new

後は以下のコマンドを実行すると、コンソールに”HelloWorld”と表示されます。

dotnet restore
dotnet run

続いて開発環境を用意します。Windows上で開発するか、Linux上で開発するか迷うところですが、デプロイ時のトラブルを避けるためにもターゲット環境上で開発することにします。
まずはVisual Studio Codeをインストールしていきます。Download Visual Studio Code(https://code.visualstudio.com/Download)からUbuntu用にdebファイルをダウンロードして以下のコマンドを実行します。

sudo dpkg -I code_1.5.3-1474533365_amd64.deb

Visual Studio Codeをインストールしたら、Visual Studio Codeを起動してメニューの「表示→拡張機能」から「C# for Visual Studio Code」をインストールしておきます。最後に「有効」ボタンを押すまで機能しないので、押し忘れないように。

.NET Coreのプロジェクトをビルドしたときに「1. The project has not been restored or restore failed – run `dotnet restore`~」等のエラーが表示される

.NET Coreのプロジェクトをビルドした時に下記のエラーが表示される場合があります。

error : Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible with one of the target runtimes: 'win10-x64, win81-x64, win8-x64, win7-x64'. Possible causes:
error : 1. The project has not been restored or restore failed - run `dotnet restore`
error : 2. The project does not list one of 'win10-x64, win81-x64, win8-x64, win7-x64' in the 'runtimes' section.
error : 3. You may be trying to publish a library, which is not supported. Use `dotnet pack` to distribute libraries.

OS等の実行環境に依存するパッケージを追加している場合に表示されます。この場合にはproject.jsonに下記の様に「runtimes~」を追記し実行環境を明記します。

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },

  "dependencies": {
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.1"
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": "dnxcore50"
    }
  },

  "runtimes": {
    "win10-x64": {}
  }
}

参考:Project.json Reference