gpt4 book ai didi

.net - C++/CLI 找不到资源

转载 作者:行者123 更新时间:2023-12-01 12:53:06 30 4
gpt4 key购买 nike

我的问题与过去几个小时谷歌搜索后发现的一些问题类似。但是,我无法让它与我阅读的内容一起使用,我将不胜感激。我有一个 C++/CLI 项目,称为(例如)some.thing,在一个名为 some.thing 的文件夹中,里面有一个 Windows 窗体。我将所有类放在命名空间 some::thing 中。为什么?可能我误解了,但我在某处读到它是标准。无论如何,这不是这里的问题。在我从设计器向表单添加资源(背景图像)之前,一切正常。它会生成运行时异常:System.Resources.MissingManifestResourceException。

消息是找不到任何适合指定文化或中性文化的资源。确保“some.thing.myForm.resources”在编译时已正确嵌入或链接到程序集“some.thing”中,或者确保所需的所有附属程序集都是可加载且完全签名的

现在,对于我在 google 和 stackoverflow 上搜索的内容,这并不少见,但所提供的解决方案不适用于我的情况,不适用于 C++CLI,或者对于我的新手来说不够清晰。

我尝试将表单类代码中的行更改为 gcnew System::ComponentModel::ComponentResourceManager(...),我搜索了默认命名空间的项目设置,我试图查看代码资源文件,搜索周围的一些属性来定义命名空间......无法解决。我希望能够在设计器中看到背景图片我将不胜感激

最佳答案

在我们的 C++/CLI 项目中一直在努力解决这个问题——请参阅我在您的原始问题下的评论。在运行时,当加载表单时,它正在寻找例如“Namespace1.Form1.Resources”。但是资源文件是 Namespace2.Form1.resources,例如。

我设法通过更改项目中每个构建配置的 EmbeddedResource 元素下的 LogicalName 元素来解决此问题。 (卸载项目并在 .vcxproj 文件中进行查找/替换)。我们将其更改为

<LogicalName>$(IntDir)$(RootNamespace).%(Filename).resources</LogicalName>

但那些 LogicalName 行是罪魁祸首——它们与生成的实际 .resource 文件的名称不匹配。

因此,您的情况可能不完全相同,但我敢打赌它与项目文件中的那些 LogicalName 值有关。 (每个表单也有 LogicalNamee 覆盖,如果上面的方法不起作用,也检查那些 - 我们的是空的,所以它能够为所有表单使用项目默认的 LogicalName。)

请问是不是2008到2010的VS升级有问题?我们的问题就是从那时开始的。

关于.net - C++/CLI 找不到资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11019078/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com