ソース管理から取得したソリューションがビルドできないとき(NuGetパッケージの復元の有効化)

NuGetパッケージが足りないエラーメッセージが出て、ASP.NET MVCで作成されたプロジェクトをソース管理から取得したがビルドできないとき、「NuGetパッケージの復元の有効化」をするとうまくいったことについてです。

ASP.NET プロジェクトとNuGet

NuGetパッケージとソース管理について、以下の記事でだいぶ理解できました。ありがたい…

ASP.NET でソース管理システムへの NuGet パッケージのコミットを不要とする – THE TRUTH IS OUT THERE
https://blogs.msdn.microsoft.com/chack/2013/02/07/asp-net-nuget/

上記記事で関係あったことをまとめると、
ASP.NET プロジェクトを構成するライブラリ群の多くが NuGet 経由でプロジェクトに追加される
ASP.NET プロジェクトをTFS や Git などのソースコード バージョン管理システムなどで管理する場合、NuGet パッケージについてはコミットしない
・ ビルド時に不足している NuGet パッケージは、自動でダウンロードする
・ この機能によりソース管理システムのリポジトリの肥大化を軽減できる

Xamarinで「プロジェクト ○○ は開始前に配置する必要があります」というエラー

環境:
Windows10
Visual Studio 2017

Xamarinのサンプルプロジェクとをビルドしようとしたら「プロジェクト XamarinCRM.Android は開始前に配置する必要があります」というエラーメッセージが出ました。
配置する設定へと変更すればOKです。

f:id:mocotanus:20181102154509p:plain

ビルド>構成マネージャー f:id:mocotanus:20181102154525p:plain

必要なプロジェクトにチェックを入れます。 f:id:mocotanus:20181102154542p:plain

C#の正規表現で全てが数字かどうか調べる

.NET Framework 4.5で確認

全てが数字かどうかを調べるには。。「^[0-9]+$」か「^[\d]+$」を使います。

「全てが○か」のパターン

^[○]+$
の「○」のところに条件を入れれば色々な表現ができます。今回の場合は「○」に「数字のみ」を記述すればいいわけです。

0〜9の数字を表すには

[0-9]を使うなら

「^[0-9]+$」と書ける。
「[0-9]」は半角の0〜9の数字のいずれかで一致する。

\dを使うなら

「^[\d]+$」と書ける。
.NET Frameworkには「文字クラス」と呼ばれるものがあって、それを使うと検索したいパターンを少ない文字で表現できる。
10 進数字と一致するかを判定するには「\d」を使う。
全角半角の0〜9の数字のいずれかで一致する。

「文字クラス」については↓
正規表現言語 - クイック リファレンス | Microsoft Docs

以下のページに「ECMAScript 準拠の動作が指定された場合、\d は [0-9] と同じになります。」とあったのが気になる。。
正規表現での文字クラス>10 進数字: \d
正規表現での文字クラス | Microsoft Docs

試しに確認した環境だと、何も指定せずに「 \d 」を使ってみて全角半角両方一致した。環境によって全角のほうは一致しない扱いになる?

サンプルコード

var words = new List<string>()
{
    "12",// 半角数字のみ
    "12",// 全角数字のみ
    "34",// 半角と全角(全角半角を区別しない)
    "A",// アルファベット
    "あ",// ひらがな
    "一",// 漢数字
};

foreach (var w in words)
{
    // 開始文字と終了文字を-(ハイフン)でつなぐと、ユニコードで範囲を指定できる
    if (System.Text.RegularExpressions.Regex.IsMatch(w, @"^[0-9]+$"))
    {
        // 全て数字(半角)
        // "12"
    }
    
    // 「文字クラス」を使う場合
    if (System.Text.RegularExpressions.Regex.IsMatch(w, @"^[\d]+$"))
    {
        // 全て数字(半角、全角)
        // "12""12""34"
    }
}

Nintendo Switch Onlineの自動更新を解除する

スプラ2のハロウィンフェスをやりたかったのでとりあえず7日間無料体験を開始した。自動継続購入が有効になるので解除方法をメモ。

30日間で300円。今ちょっと時間取れないので、自動更新は解除する。

残高からの引き落としが行われるタイミング

「利用券の利用期間が切れる48時間前」だそうで、ギリギリに解除しようとしても間に合わないなんてことになりそう。
継続しないなら、余裕を持った行動が必要。早めに自動更新を停止しても有効期限まで使えるので、必要ないとわかったらすぐにやったほうがよさそう。

更新停止の方法

↓PC・スマートフォンから
ニンテンドーアカウント
https://accounts.nintendo.com/
上記URLよりログイン

「ショップメニュー」
f:id:mocotanus:20181021194054j:plain


「利用券の確認・設定」
(下の方にある)
f:id:mocotanus:20181021194133j:plain
自動継続購入の更新を停止できる。 f:id:mocotanus:20181021194148j:plain

自動更新が解除されている状態だと、ボタンが「延長する」になる。