gpt4 book ai didi

c# - 特定于语言的资源 dll 的 WF 4 错误

转载 作者:行者123 更新时间:2023-11-30 12:30:13 25 4
gpt4 key购买 nike

我正在使用 WF 4 开发一个重新托管的工作流设计器,我使用这个设计器控件的应用程序是一个多语言应用程序,它加载 2 个或更多语言特定的资源 dll。如果我有两个针对一种语言的附属程序集,例如“en”和“en-US”,设计器会抛出这样的异常:

Compiler error(s) encountered processing expression "testExpression". The project already has a reference to assembly MyProject.resources. A second reference to 'C:\Dlls\en-US\MyProject.resources.dll' cannot be added.

这是堆栈跟踪:

   at Microsoft.VisualBasic.Activities.VisualBasicHelper.Compile[T](LocationReferenceEnvironment environment, Boolean isLocationReference)
at Microsoft.VisualBasic.Activities.VisualBasicHelper.Compile[T](LocationReferenceEnvironment environment)

值得一提的是,当我查看附属程序集的属性“详细信息”选项卡时,我意识到它们都是中性语言。我认为它们必须是特定语言,这样应用程序才能识别出这些 dll 是不一样的。

我可以做些什么来解决这个问题,我可以将 dll 文件的语言属性更改为特定语言吗?这有帮助吗?

最佳答案

我遇到了同样的问题,我可以通过定义设计师可以通过其 AssemblyContextControlItem“看到”的 dll 来解决它,过滤掉附属程序集(无论如何我都不需要):

var acci = this.Designer.Context.Items.GetValue<AssemblyContextControlItem>() ?? new AssemblyContextControlItem();
acci.ReferencedAssemblyNames = acci.AllAssemblyNamesInContext
.Select(an => new System.Reflection.AssemblyName(an))
.Where(an => !an.Name.Contains(".resources"))
.ToList();
this.Designer.Context.Items.SetValue(acci);

关于c# - 特定于语言的资源 dll 的 WF 4 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16789290/

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