.net5 / .net core で System.Windows.Fromsを参照する方法(C#)

C#

.NET5 で リソースファイルを弄ろうとしてハマったので覚書き。
具体的には以下のようなコードを書いたらResXResourceSetなんてねーよ、と怒られた。

var resx = new System.Resources.ResXResourceSet(resxFile);

公式を参照してみたところ、usingにsystem.windows.formsは見当たらないが、

Assembly:System.Windows.Forms.dll

と書いてある。

ResXResourceSet Class (System.Resources)
RepresentsallresourcesinanXMLresource(.resx)file.

じゃあアセンブリ参照追加すればいいんだな、ということで追加しようとしたけど追加方法がわからない。
.Net framework系で作ってる時は簡単に追加出来てたと思うんだけど、、、と思考停止。

調べてみると、.NETcore系列ではWindowsFormsは参照に追加するのではなくて、csprojファイルに記載するらしい。

//変更前
<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net5.0</TargetFramework>
    </PropertyGroup>
</Project>


// 変更後
<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net5.0-windows</TargetFramework>
	<UseWindowsForms>true</UseWindowsForms>
     </PropertyGroup>
</Project>

UseWindowsFormsを追加し、TargetFrameworkに”-windows”を追記します。

windowsに依存する機能だから特別の配慮が必要なのはまあ妥当かな、と思いますがこれ初見じゃわからんよ。

コメント