「The reference assemblies for .NETFramework,Version=v5.0 were not found. 」への対処
Visual Studioで現在プレビュー版の.NET5を使ってトップレベルステートメントを試したときに以下のようなエラーメッセージが表示されました.
The reference assemblies for .NETFramework,Version=v5.0 were not found.
Tools > Options
でOptionsウィンドウを開いて,Environment > Preview Features
の中でUse previews of the .NET Core SDK (requires restart)
にチェックをつけてOK
を押します.
Visual Studioを再起動します.
前提として,対象のプロジェクトのcsprojファイル内で言語バージョンをプレビュー版が使えるように指定されている必要があります.
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net5.0</TargetFramework> <LangVersion>preview</LangVersion> </PropertyGroup> </Project>
コマンドラインでSDKを指定して.NETアプリケーションを作成する.
dotnetコマンドでプロジェクトを作成すると,一番新しいSDKが使用される.
現時点だとpreview版の.NET5をインストールしてあるので,dotnet new console -o Hoge
とすると自動的にdotnet5のプロジェクトになる.
そこで-f|--framework <FRAMEWORK>
オプションを使う.
<FRAMWORK>
には以下の文字列が入る.
SDK | version Default value |
---|---|
3.1 | netcoreapp3.1 |
3.0 | netcoreapp3.0 |
プロジェクトを作成する
HelloXUnit
フォルダへ移動する.
> dotnet new console -o Hoge -f netcoreapp3.1
スマートホームを構築する際のRM Mini3とGoogle Homeの設定 初期設定~エアコン登録(2018年11月24日時点)[引越記事]
こちらがとても参考になります.
はじめに
スマートホームを構築する手段はいろいろとありますが、今回は中でもとりわけ安価で有名な「RM Mini3(通称:黒豆)」と「Google Home」の組み合わせについて、その設定方法を説明したいと思います。
ことのはじまりは自分がRM Mini3とGoogle Homeを購入し、テレビやエアコンを音声で操作しようとしたときにRM Mini3側とGoogle Home側の設定でつまづきまくってほぼまる1日を費やしてしまったことです。 このスマートホームの分野は新しい分野のため、メーカー側の対応やアプリケーションの変更がよく行われ、ネットで設定方法を調べてみるとわずか1年の間であっても複数種類のやり方で出てきてどれが正しいのかわからなかったり、設定用のアプリケーションのUIが変わっていて目的のメニューにたどり着けなかったりします。
というわけで、今回の自分の経験をもとに2018年11月24日時点での設定方法を書こうと思った次第です。
必要なもの
- RM Mini3
- Google Home
- Android端末(設定用)
- エアコン
手順概要
RM Mini3とGoogle Homeの設定手順は大まかにいって以下のとおりです。
- RM Mini3とGoogle Homeの購入
- RM Mini3設定用のスマホアプリ「IHC(Intelligent Home Center)」のインストール
- RM Mini3を自宅Wifiに接続
- IHCに家電を追加
RM Mini3とGoogle Homeの購入
Google Homeは家電量販店かGoogle公式サイトで購入してください。 家電量販店ならば「一定金額以上購入の場合に半額」というキャンペーンや、公式サイトなら「今なら8000円オフ」だったりします。
RM Mini3はGearBestかAliExpressで購入すると1500円程度で購入できます。 ただし納期は1週間から10日ぐらいかかります。 どちらも中国の通販サイトで英語表記なので少し手間ですが、基本的にはAmazonと変わりませんのでがんばりましょう。 なぜ海外サイトを使うのかというと、安いからです。 この商品の日本販売版であるeRemoteという商品がありますが、これは名前と色だけ変えただけの製品で、性能的には何も変わらず3倍以上の値段なので、もし急ぎでなければ海外サイトから購入する方が良いかと思います。
RM Mini3側の手順
IHC(Intelligent Home Center)アプリのインストール
日本ではPlayストアからインストールできません。 下記URLからAPKファイルをダウンロードしてインストールします。 https://www.apkmonk.com/app/cn.com.broadlink.econtrol.plus/
アプリのインストール[2020.07.21追記]
最初に起動するといくつかのパーミッションを求められますが,それらをすべて許可しないとアプリを起動できないので自己責任のもと,すべて許可します.
アカウント作成,ログイン[2020.07.21追記]
次はアカウントの作成を求められます. Facebookアカウントでのログイン,Emailや電話番号でのアカウント新規作成などいくつかの手段がありますが,好きな方法を選択してアカウントを作成します.
RM Mini3を自宅Wifiへ接続
IHCを使ってRM Mini3を自宅Wifiへ接続するのですが、このとき使うスマートフォンの言語を英語にしておく必要があります。
IHCを起動したら「Home」タブを選択して 「Add Device」ボタンを押します。
[2020.07.21追記]
次の画面が表示されるのでUniversal Remotes
を選択します.
次の画面でRM mini 3
を選択します.
QRコードスキャン画面が表示されますが、画面下部の「Add device by category」を選択します。
カテゴリーの中から「Universal Remotes」を選択します。
「RM mini3」を選択します。
下の画面が表示されたら、RM Mini3の電源コネクタの上部に「Reset」と書かれた穴があるので、何か細いものを使って5秒間長押しします。するとLEDが短く点滅を初めます。 その状態になったら「Next」ボタンを押します。
WifiのSSIDとパスワードを入力して「Next」ボタンを押します。
以下の画面が表示され、しばらくするとRM mini3のWifiへの接続が完了です。
このRM mini3を置く場所を選択します。 これはIHC上でユーザーが機器を管理しやすいようにつけるタグなので、別にどれを選んでも動作は問題ありません。
好きな場所を選んでください。[2020.07.21追記]選択式ではなく,自由記入式になりました.+
ボタンを押すと入力画面が開くので,名前をつけたらSave
ボタンを押して保存します.今回,このRM mini 3をリビングに設置するので,Living
という名前にしました.
RM mini3のWifiへの接続が完了すると、HomeタブにRM mini3が表示されます。
RM mini3が登録できたら、スマートフォンの言語を日本語に戻して大丈夫です。
リモコン操作できる照明を登録
RM mini 3から操作する家電を登録していきます.
上記手順が完了した時点で,以下の画面が表示されていることと思います.
Lamp
を選択します.
もしくはホーム画面からRM mini 3を選択し,(スクショではすでにランプが登録されていますが)
次の画面で+ Add appliance
を押すと家電選択画面が表示されます.
Lampを選択した後, メーカー名で検索できます.
空調などであれば製品ごとのプリセットを利用すると良いですが,照明については一つの部屋に複数の同系機があってそれらをChannelを変えて操作します.
そのため,照明ごとに個別に操作するためにはプリセットではなくリモコンからの赤外線信号を学習
させる必要があります.
リモコンを学習
以下のSelect brand
の画面の一番下にCan't find my brand...
を押します.
このような設定画面が表示されるので,Device name
に任意の名前をつけ,同じく場所を選択します.RM mini 3と同じLiving
を選択します.
OK
ボタンを押します.
次の画面ではボタンがズラッと並んでいますが,それぞれのボタンにリモコンの各ボタンの赤外線信号を割り当てて行きます.
画面右上の・・・
ボタンを押すとメニューが表示されるのでLearn
を選択します.
ボタンのリストが表示されます.
ボタンの横にはLearn
というボタンがあるので,学習を行いたいボタンのLearn
を押します.すると以下のダイアログが表示されるので,RM mini 3に向けてリモコンのボタンを押します.
以下のような確認メッセージが表示されるので,Test
ボタンを押して照明が学習させたボタンのとおりに動作するかを確認します.
動作したらYes,動作しなかったらNoを押します.
Noを押すともう一度赤外線信号を登録する操作に戻ります.
こんな感じで必要な操作を登録していきます.
家電を登録
次に家電を登録します。 まずは簡単な空調から。 「デバイス」タブからRM mini3を選択します。
Air conditionerを選択します。
「エアコンメーカーマッチング」を選択し、選択します。
自分が使っているエアコンメーカーを検索します。日本のメーカーはだいたい揃っています。ありがたや。
自分が使っているエアコンに合った信号のタイプを選択します。 中央の「テスト」ボタンを押してエアコンのスイッチが入るか確認します。
今のテストでエアコンが起動した場合、「はい」を選択します。そのエアコンを操作する信号のパターンがみつかりました。 何も反応がなければ「いいえ」を選択してください。 次のテストを行って、エアコンが動くまで繰り返します。
これでエアコンの登録が完了です。 Google Homeに向かって、「ねえグーグル、エアコンをつけて」と言ってみましょう。 エアコンのスイッチが入るはずです。 温度設定などもできるのでいろいろ試してみてください。
エアコンは本当に簡単です。 テレビもコレぐらいの簡単さで設定できるといいのですが、そうもいかないのです。
今回はここまでです。 次はテレビの設定を書こうと思います。
Visual Studioの設定の移行 : インストール構成, Visual Studioの設定
複数のPCでVisual Studioを使っている場合,もしくは1つのPCで複数のバージョンのVisual Studioを使用する場合,それぞれのVisual Studioでワークロードを選択するのは手間ですし,インストール漏れがあったりしたら嫌です.(私の場合は複数バージョンのVSを入れる容量が足りないからですが)
また,エディタの設定や拡張機能をインストールしたりと,やることは沢山あります.
これらの手間を軽減するために,インストール構成及び設定に関する情報をそれぞれエクスポート,インポートすることができます.
環境
- Visual Studio 2019 16.4
- Windows 10 Pro
インストール構成
Visual Studioは開発の目的ごとにインストールする項目を選択することができます.
このインストール項目がワークロードと呼ばれるもので,Visual Studioのインストール時(もしくはインストール後にVisual Studio Installerで)に以下のような画面で機能を選択します.
そこで,このどのワークロードをインストールしているのか
というインストール構成の情報をエクスポートし,それを他のVisual Studioでインポートすることで同じ環境を作ることができるようになっています.
エクスポート
まずは,Visual Studio Installerを起動します.
PCにインストールされているVisual Studioが表示されるので,インストール構成をエクスポートしたいVisual
StudioのMore
というドロップダウンリストを開きます.
その中のExport configuration
を選択します.
出力先を選択します.
最後にインストール構成を確認して,Export
ボタンを押すと,エクスポートされます.
インポート
Visual Studio Installerでインストール構成をインポートしたVisual Studioのバージョンを選択して,先程と同じようにドロップダウンリストからImport Configuration
を選択します.
これで,不足している分のワークロードがインストールされます.
Visual Studioの設定
インストール構成とは別にIDEとしての設定の情報もエクスポートする必要があります.
開発者にとって大事なのはこちらの情報かと思います.
Visual Studio 2019はアカウントが同じであれば同期されるようです.また,同一PC内のサイドバイサイドのインストールであれば,同じ設定ファイルが使用されるようになっているとのことです.
とはいえ,アカウント関係なしに同じ設定にしたいということもあるかも?ということで,以下設定情報のエクスポートとインポートです.
エクスポート
まずはVisual Studioを起動します.
Visual Studioのタイトルバーについている検索欄にExport
とでも入力して検索すると以下のようにImport and Export Settings
という項目が見つかるので,これを選択します.
以下のウィンドウが表示されるのでExport selected environment settings
を選択してNext
を押します.
エクスポートしたい情報を選択できるので,必要なものを選びます.
拡張機能についてはGeneral Settings > Extensions
にあります.
ぬぐぐ.このExtensionsは`拡張子`の方だった...
出力ファイル名,出力先を指定してFinish
を押すとエクスポートされます.
インポート
同様にインポートを選択してインポートします.
おまけ: 拡張機能について
拡張機能については,インストール済みの拡張機能のリストを取得してテキストファイルなどに保存しておき,新しくインストールしたVisual Studio側でリストを参照しながらインストールする,という地道な方法がある.
Visual StudioのメニューからHelp > About Microsoft Visual Studio
を選択する.
上記のウィンドウが開き,この中段のInstalled products
にVisual Studioにインストールされている機能の一覧が表示される.
この中にインストールした拡張機能も含まれているので,Copy Info
ボタンでコピーしてテキストファイルに貼り付けておく.
今の所,自分でできるのはこのあたりまで.
LiveSharpを使ってコードの変更をアプリ再起動なしで即座に反映する
20200717追記
UIをすべてC#で書ける機能C#マークアップ拡張
においては非常に有用なツールと思う.
もともとの本文
Xamarin.Forms(だけに限りませんが)は現時点でホットリロードが可能になっていて,Xamlの変更であればデバッグ中の変更が即座にエミュレータや実機に反映されるため,開発が非常に便利になっています.
ソースコードの変更についてはもちろんデバッグの停止と再実行を行う必要があります.
LiveSharpはXamarin.Forms(だけに限りませんが)のデバッグ中のコードの変更をデバッグの停止・再実行を行うことなく,そのままエミュレータや実機に反映することができるアプリケーションです.
インストール
公式サイトの手順のとおりです.
LiveSharpはサーバーとクライアントに分かれており,サーバーをdotnet tool
コマンドでPCにインストールし,クライアントをプロジェクトにNugetでインストールします.
ですのでサーバーのインストールはPCへの1回だけです.
サーバーのインストール
コマンドラインで以下のコマンドを実行し,インストールします.
dotnet tool install --global livesharp.server
クライアントのインストール
Nugetでインストールします.
LiveSharp.Server
というパッケージがありますが,これは無視します.上記のとおり,サーバーはコマンドからインストールします.
実行
まずはLiveSharpのサーバーを起動します.
コマンドラインから以下のコマンドを実行します.
>livesharp
これでサーバーが起動しました.
サーバーを停止する場合はCtrl+C
です.
MVVMな形でサンプルプログラムを作成しました.
以下のViewModelを作成しました.
using MvvmHelpers; using System; using System.Collections.Generic; using System.Text; namespace XFHabitTracker.ViewModels { public class HabitListViewModel : BaseViewModel { private string _message = string.Empty; public string Message { get => _message; set => SetProperty(ref _message, value); } public HabitListViewModel() { Message = "こんにちは!"; } } }
MvvmHelpersというライブラリを使っていますが,中でやっていることはプロパティの変更を通知する,といういつものことです.
Message
というプロパティがあって,これがView側のLabel
のTextプロパティにバインディングされています.
<Label FontSize="Large" HorizontalOptions="CenterAndExpand" Text="{Binding Message}" VerticalOptions="CenterAndExpand" />
それではアプリをデバッグ実行します.
デバッグを開始すると,ブラウザで以下のようなページが表示され,ここでLiveSharpのログを見れたりします.
さて,今回はエミュレータを使っていますが,以下のようにMessageプロパティにセットした文字列が表示されます.
次に,デバッグを実行したまま,ViewModelのMessageプロパティにセットする文字列を以下のように変更します.
そして保存すると,以下のようにエミュレータに表示されている文字列も変化します.
通常であれば,ここはデバッグの停止・再実行が必要な場面です.
これはかなり便利ですね.
LiveSharpはサブスクリプション型のアプリケーションで,個人であれば月々9.9ドルからになっています.
まだ使い始めたばかりですが,Xamlの変更だけでなくロジックの方の変更によって生じるViewの変化もリアルタイムで確認できるというのは,とても便利な気がします.
正直,ありかな,と.
App Center経由のデプロイでバージョン番号やバージョン名を変更する
これまでにde:code2020用アプリMy de:code 2020
を作成し,App Centerを利用してビルド→ストア公開までを自動で行えるようにした.
また,アプリのアイコンやアプリ名などの変更方法にも触れてきた.
しかしもう一つ問題があった.
バージョンが1.0
のままだ.
ストアのアップデートだけでも3回はアップデートしているし,開発過程でのビルド回数は29回になっている.
ここに表示されているのはVersion Name
で,ストアでユーザーに表示されるものです.未だに1.0
のままでした.
さて,これはAndroidManifest.xmlを編集するか,もしくはAndroidプロジェクトのプロパティで変更します.
どちらでも構いません.
ここではプロパティから変更します.
Androidプロジェクトのプロパティを開きます.ソリューションエクスプローラでAndroidプロジェクトを右クリックしてコンテキストメニューからプロパティ
を選択します.
以下のようにプロパティタブが開きます.
左のメニューからAndroid Manifest
を選び,その中のVersion name
という項目に任意の文字列を入力します.
ここでは1.1.0.0
としました.完全に適当です.
Version number
はどうするのかというと,本来であればストアに新しいバージョンのアプリを公開,つまりアップデートする場合は,この番号を1つ(以上)を上げる必要があります.同じ番号だとアップデート扱いされないということでしょうか.試してないですけど.
しかし,App Center側でビルドごとにインクリメントする設定にしているため,Visual Studio側での設定は不要です.App Center側ではこれをVersion code
と読んでいるようです.
さて,それではこの設定でApp Center経由でアプリを実機に配置してみます.
自動ビルドの結果,App Center側ではリリースの履歴には以下のようにバージョン情報が1.1.0.0(30)
になっています.
Xamarin.Forms : Androidのアプリ名を変えたい
以前に,アプリのアイコン下に表示される名称を変更しました.
しかし,インストールしたアプリの情報を表示させると,表示されるのはプロジェクト名です.
ここに表示される文字列はどこで変更できるのか.
AndroidManifest.xmlに記載するandroid:labelについて。shun1adhocblog.wordpress.com
こちらの記事を読むと,以前に私がアプリ名の変更と思っていたのはアイコンに表示されるラベルの変更でした.
アプリケーション名をへんこうするには,AndroidManifest.xml
の以下の部分を変更する必要があります.
<application android:label="XFMyDecode2020.Android" android:icon="@mipmap/ic_launcher"></application>
このapplication
要素のandroid:label
属性に指定した文字列がアプリ名として使用されます.
ここを以下のようにします.
<application android:label="@string/app_name" android:icon="@mipmap/ic_launcher"></application>
@string/app_name
はResources/values/Strings.xml
でアプリ名の文字列(My de:code 2020)を割り当てています.
実行し,アプリの情報を確認すると以下のように指定したアプリ名が表示されました.