.NET5 で リソースファイルを弄ろうとしてハマったので覚書き。
具体的には以下のようなコードを書いたらResXResourceSetなんてねーよ、と怒られた。
var resx = new System.Resources.ResXResourceSet(resxFile);
公式を参照してみたところ、usingにsystem.windows.formsは見当たらないが、
Assembly:System.Windows.Forms.dll
と書いてある。
ResXResourceSet Class (System.Resources)
Represents all resources in an XML resource (.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に依存する機能だから特別の配慮が必要なのはまあ妥当かな、と思いますがこれ初見じゃわからんよ。
コメント