2

我正在缓慢地迁移到 .NET5,但之前的步骤之一是将我们所有的 WinForms 项目转换为 NET-SDK 项目格式。

此转换已完成,一切似乎都正常,但我遇到了一些问题。

一些使用资源的表单现在会抛出异常

System.Resources.MissingManifestResourceException: 'Could not find any resources appropriate for the specified culture or the neutral culture.  Make sure "Demo.FormTest.resources" was correctly embedded or linked into assembly "Demo" at compile time, or that all the satellite assemblies required are loadable and fully signed.'

我已经通过手动将资源项添加到 csproj 文件来解决其中的一些问题,所以我必须添加类似

<ItemGroup>
    <EmbeddedResource Update="Demo.FormTest.resx" />
</ItemGroup

它解决了那个表单的问题,但是对于数百个表单,这将是一个巨大的痛苦......有没有更好的方法来处理 NET-SDK 格式项目中的所有这些表单资源文件?

4

1 回答 1

1

当您将资源添加到现有 resx 文件时,它将以 base64 格式存储在 der resx 文件中。

像您的示例一样添加了“正常”嵌入式资源,但“更新”属性可能是一个/问题。此属性意味着,您要更改现有的嵌入资源,但不添加该资源。
您必须使用“包含”属性。

但据我所知,两者都与旧格式相同。
您确定错误不在其他地方吗?

于 2021-05-28T21:01:08.307 回答