针对 3.5 框架的 VS2010 上的 RESX 文件存在问题

2024-03-09

这是我最近遇到的一个故事和一个可能的答案(?)我只是想分享这个信息,因为我在 stackoverflow 上还找不到这个信息。

我将我的解决方案从 VS2008、WinXP、32 位升级到 VS2010、Win7、64 位。

当我对生成新 RESX 文件的 WinForms 进行修改或更新 RESX 文件时,我遇到了问题。

使用 VS2010 进行调试构建没有问题。然而,对于发布模式,我必须使用延迟签名过程。现在该过程出现错误new使用 VS2010 生成的 RESX 文件。 (再次注意,旧的 RESX 文件不会显示此行为)

(CoreResGen 目标) Search.resx(176,5):错误 RG0000:无法加载文件或程序集 xxx.Controls,Version=1.5 0,Culture=neutral,PublicKeyToken=7acfcc7eabace048' 或其依赖项之一。强名称验证失败。 (超出 HRESULT:0x8013141A)第 176 行,位置 5。

以下是我在网上找到的一些资料

Link https://devblogs.microsoft.com/visualstudio/resgen-exe-error-an-attempt-was-made-to-load-a-program-with-an-incorrect-format/

我想知道其他人是否遇到过这个问题以及他们采取了哪些解决方法? 没有解决方法就意味着等待 VS2010 SP1 的发布。

不幸的是,我正在使用可能已编译为 32 位的第 3 方程序集。 (我无法控制他们的构建过程)

-- 2010 年 8 月 11 日 一些附加信息。

控件本身没有签名或延迟签名。但该控件正在使用延迟签名程序集中的组件。两个组件都在同一解决方案中。

当我将使用程序集更改为针对 4.0 框架时,问题得到解决。 当我针对 3.5 框架时,出现错误。


我们遇到的问题也与ImageList在 *.resx 文件内(在代码中打开,而不是在设计器中打开):

<data name="imageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
    <value>
        [bunch of binary data here]
    </value>
</data>

我们确认这是通过仅删除<data />相关标签ImageList(见上文)然后删除控件设计器中的引用:

//initialize
this.imageListSuperHeroes = new System.Windows.Forms.ImageList(this.components);

//control that references the ImageList
this.btnAwesome.ImageKey = "superman.gif";
this.btnAwesome.ImageList = this.imageListSuperHeroes;

从“项目资源文件”而不是“本地资源”添加控件的图像引用(使用单个图像!),并更新从表单中删除的引用。

this.btnAwesome.Image = global::PMPPlus.Properties.Resources.Superman;

这为我们解决了这个问题,希望这有助于您朝着正确的方向前进。如果没有,请挖掘 *.resx 看看哪个不好<data />把你搞砸了。

相关链接:http://connect.microsoft.com/VisualStudio/feedback/details/566131/error-in-resx-file-when-adding-imagelist http://connect.microsoft.com/VisualStudio/feedback/details/566131/error-in-resx-file-when-adding-imagelist

他们提出了一些不符合我们需求的解决方法:

  • 瞄准另一个平台和框架
  • 使用 corflags 来修改你的 C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bin 目录!

我们的设置

  • 旧环境:Windows XP 32位
  • 新环境:Windows 7 64位
  • 通用设置:VS2010 + 目标框架:3.5 + 目标平台:x86
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

针对 3.5 框架的 VS2010 上的 RESX 文件存在问题 的相关文章

随机推荐