在.NET应用程序中找不到用于后备文化“en-US”的名为“XX.dll”的附属程序集错误

时间:2011-02-22 15:02:50

标签: c# .net winforms satellite-assembly

我正在定制一个开源.NET应用程序。它编译得很好。但是表单和控件拒绝在设计器中显示,抛出以下错误:

  

名为“XX.dll”的附属程序集   对于后备文化“en-US”也是   无法找到或不可能   加载。这通常是一种设置   问题。请考虑重新安装   或修理申请。

我知道这是一个多语言应用程序,但我想删除其他语言并坚持使用表单设计器进行简单的字幕自定义。

此外,该问题无法将图像添加到控件。在行上发生同样的异常,如下所示:

((System.Drawing.Image)(resources.GetObject("ItemXXX.Glyth")));

为了禁用附属程序集资源,我需要更改哪些内容?

...谢谢

3 个答案:

答案 0 :(得分:4)

这是一种解决问题的方法,但要修复,请将UICulture添加到项目文件中与您匹配的PropertyGroup NeutralResourcesLanguage文件中使用的AssemblyInfo。如果需要,您可以满足FxCop警告CA1824。 例如在AssemblyInfo


[assembly: NeutralResourcesLanguage("en-GB", UltimateResourceFallbackLocation.Satellite)]

在项目文件中(例如.csproj):


    ...
    <PropertyGroup Condition="...">
        ...
        <UICulture>en-GB</UICulture>
        ...
    </PropertyGroup>
    ...

答案 1 :(得分:2)

找到答案。

从AssemblyInfo中删除以下行解决了问题:

[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]

答案 2 :(得分:0)

在尝试添加对项目的引用时,我只遇到过一次此错误。

我解决了它只是重启Visual Studio。