【C#】.NET Framework4.8から.NET 5へ移行(Windowsフォーム)

手順

  1. Visual Studio 2019インストール
  2. slnファイルが存在するフォルダをWindowsエクスプローラで開く
  3. Windowsエクスプローラのアドレスバーにcmdと入力してEnterキー押下
  4. try-convert -w hoge.sln と入力してEnterキー押下
  5. 以下のメッセージが表示されればコンバートは完了
    C:\~\hoge.csproj contains an App.config file. App.config is replaced by appsettings.json in .NET Core. You will need to delete App.config and migrate to appsettings.json if it’s applicable to your project.
    Conversion complete!
  6. App.configは不要とのことなので削除。hoge.csproj.oldファイルが作成されていたのでそれも削除した。
  7. hoge.slnをダブルクリックしてVisual Studioを起動。F5キー押下でアプリが起動できることを確認。
  8. このままだと何故かWindowsフォームのデザイナが表示されないため、プロジェクトの新しい項目の追加から、「フォーム(Windowsフォーム)」を追加する。
    少し待つと、元々あったフォームがデザイナ表示できるようになる。この状態になれば追加したフォームは削除してOK。移行完了!

 

感想

コンバートツールを利用するだけで.NET 5に移行できたが、これまでの.NET Frameworkのバージョンを上げるような手軽さではなく、完全な互換性もなさそうなので、移行する際には十分な検証が必要になるはず。

特に今回は小規模なプロジェクトで試したが、より複雑なものであれば失敗するかもしれない。
.NET Framework から .NET への移植の概要に移行できないパターンも記載されているのでそちらも参照のこと。

【C#】【WooCommerceNET】woocommerce_rest_cannot_viewエラーが発生する

環境

  • WordPress 5.7.2
  • WooCommerce 5.5.1
  • WooCommerceNET 0.8.3
  • Visual Studio 2019 C#

エラー内容

{
  "code": "woocommerce_rest_cannot_view",
  "message": "リソースをリストすることはできません。",
  "data": {
    "status": 401
  }
}

対処

new RestAPI()の第4引数にfalseを指定したところ、エラーが発生しなくなった。

以前は未指定(デフォルトのtrue)で問題なく使えていたので原因不明。
ここにたどり着くまでに時間がかかったのでメモとして残しておく。

【Android Studio】Failed to install the following Android SDK packages as some licences have not been accepted.エラーが発生する

Android Studio4.1.1を利用していたが、別PCに4.2.1を構築し、以前作成したソースを持ってきて実行しようとしたところ、以下のエラーが発生した

Failed to install the following Android SDK packages as some licences have not been accepted.
   build-tools;30.0.2 Android SDK Build-Tools 30.0.2
To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.
Alternatively, to transfer the license agreements from one workstation to another, see http://d.android.com/r/studio-ui/export-licenses.html

「licences have not been accepted」とあるので、調べたところ「sdkmanager –licenses」を実行すれば良いとあったが、効果が無かった。

原因が分からなかったが、4.2.1で新規に作成したソースだと動作しているため差を確認したところ、build.gradleのbuildToolsVersionが30.0.3となっていたため、ここを同じように30.0.2から30.0.3に書き換えることで動作した!

 

【SQL Server】SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました

エラーメッセージ

System.Data.SqlClient.SqlException: SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。 (provider: SQL Network Interfaces, error: 26 - 指定されたサーバーまたはインスタンスの位置を特定しているときにエラーが発生しました)

原因

そもそもIDやPWを間違えている場合なども考えられるが、今回はSQL Server上の「SQL Server Browser」サービスが起動していないことが原因だった。

SQL Server上のManagement Studioからだとこのサービスが起動していなくても接続できたので、気付きにくい。

 

 

【C#】正規表現で、1文字ずつタブを挿入する

//1文字ずつ、タブ(\t)を挿入する
System.Text.RegularExpressions.Regex.Replace("123456789", "(.+?)", "$1\t");

//実行結果(各数字の後にタブが挿入されている)
1	2	3	4	5	6	7	8	9	
  • “123456789”
    元の文字列
  • “(.+?)”
    検索条件(任意の1文字をヒットさせる)
  • “$1\t”
    置換条件($1=ヒットした文字が入る。\t=タブ記号)

 

【C#】正規表現で英数字を除く

文字列中の英数字を除いて、ひらがなだけにするサンプル

//実行すると「あいうえお」になる
System.Text.RegularExpressions.Regex.Replace("aあbい1う2えAおB", @"[a-zA-Z0-9]", "");

 

【Windows】Subversion(SVN)サーバを移行する

はじめに

個人開発で利用していて自分しか使わないSVNがあるのですが、PC買い替えのため移行しました。

1台のPC上でSVNサーバとクライアントを兼ねており、大人数が使う場合には問題が出るかもしれませんが、あくまでも個人用としては問題なかったので残しておきます。

移行環境

移行元

  • Windows 10 20H2
  • subversion 1.8.17(CollabNet)
  • TortoiseSVN 1.9.5

移行先

  • Windows 10 20H2
  • subversion 1.12.0(CollabNet)
  • TortoiseSVN 1.14.1

メモ:SVNのバージョンは、コマンドプロンプトから「svn –version」を実行すると分かります。

移行手順

subversion本体をインストール

https://www.collab.net/downloads/subversion から、「Subversion 1.12.2 (Windows 64-bit)」をダウンロードします。

ここで不安になったのですが、ダウンロードされたファイル名が「CollabNetSubversion-client-1.12.2-1-x64.exe」とあり、「クライアント?サーバ用じゃないのか?」と思ったのですが、ちゃんとサーバ用でした。クライアントコマンドも入っているという意味みたいですね。

インストール自体はデフォルトのまま進めて完了しました。

TortoiseSVNをインストール

クライアントとして利用します。
https://tortoisesvn.net/downloads.html から、「TortoiseSVN 1.14.1 – 64-bit」をダウンロードします。

こちらもデフォルトのまま進めてインストールを完了しました。

リポジトリの移行

旧PCからフォルダごと持ってきただけで完了しました。
尚、チェックアウトする時は「file:///C:/svn/プロジェクト名/」のような形式で指定しています。

おわりに

WindowsPCにSVNを構築することについて書かれたサイトが少ない気がします。
特に最近更新されたページが無かったので、次の移行のときには厳しくなってくるかもしれません。
念のため、インストーラ自体は残しておいた方が良いと思います。

 

【Visual Studio】ソリューション内の 1 つ以上のプロジェクトが正しく読み込まれていません。エラーが発生する

内容

ソリューションファイルを開くと、以下のエラーメッセージが表示され、プロジェクトが(利用不可)の状態になる

ソリューション内の 1 つ以上のプロジェクトが正しく読み込まれていません。
詳細については、出力ウィンドウを確認してください。

このメッセージをOKを押して閉じると、以下のようにエラー原因が表示される。

原因

Zipファイルを解凍せずにそのまま開いて、slnファイルをダブルクリックして実行したから。

解凍してあげればOK