我该如何限制构建仅支持EN的"Microsoft.Expression.Interactions.resources.dll",并避免DE、KR、FR、ES等其他语言的支持?

18
当我构建我的 WPF 项目时,它会创建几个语言文件夹,每个文件夹都包含 "Microsoft.Expression.Interactions.resources.dll"。
奇怪的是,我从未为其他语言创建过资源字符串的翻译,但它仍然创建了 DE、KR、FR、ES 文件夹。我只需要 EN。
如何将本地化限制在只有 EN?

2
重复? 我6年前就问过了,而“禁用DLL文化”问题是4年前的。因此,请告诉“禁用DLL文化”的作者,他的问题是这个问题的重复。 - user46915
4个回答

2
您看到这些文件,是因为您正在使用Blend SDK for .NET(直接或通过Prism库)。该SDK包括本地化资源,因此它们会被包含在您的构建输出中。 以下是如何创建针对特定文化的Silverlight构建的方法。 对于WPF应该也适用。其要点是:
  1. 在解决方案中创建一个新配置。
  2. 编辑每个项目文件,将SupportedCulture指定为“en”(注意大小写)。
如果您的解决方案非常大,这可能需要很多工作。老实说,在WPF应用程序中拥有这些额外的文件并不会造成任何损害--它们只会占用一些磁盘空间。您还可以仅存档和发布en语言环境资源。假设您已将NeutralResourcesLanguage定义为en,则应用程序始终能够找到其资源(它们只是英文)。

我指定了en;en-US只是为了确保 :) - user46915

1
@Mike-Post的解决方案对我没用 :( 可能是因为我用的是VS2012。 我添加了<SupportedCultures>en</SupportedCultures>但没有任何变化,还有一个警告说它是无效元素。
但这里有另一个解决方案: http://social.msdn.microsoft.com/Forums/vstudio/en-US/feb23879-660d-43d1-93ef-90a63eef70c6/how-can-i-remove-localization-information-from-my-wpf-project 只需从Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.0\Libraries中删除这些文件夹(除了en)。

我遇到了这个问题,你解决了吗(而不必删除SDK文件夹中的文化文件夹)? - Alexander Forbes-Reed
@AlexReed 如果你不需要它们,为什么不能直接从SDK文件夹中删除它们呢?我记得我没有找到更好的解决方案。或者你可以通过Post Build VS项目事件从输出文件夹中删除它们(或将其他所有内容复制到另一个文件夹中)。 - Alex P.
1
啊,那真烦人。我想我只能做后构建事件了。不想删除这些文件。谢谢。 - Alexander Forbes-Reed
1
破坏SDK或工具包的安装并不是从项目的构建文件夹中删除本地化资源的推荐方法。至于“<SupportedCulture>”无法工作 - 这是一个拼写错误。您输入了“<SupportedCultures>”。 - Panagiotis Kanavos

0

我通常这样处理。转到你的引用属性,然后进行以下操作:

设置“复制本地= false”

保存

设置“复制本地= true”

保存

就这样。

Visual Studio 2010最初不会在引用标记中放置:True,将“复制本地”设置为false会导致它创建标记。之后,它会相应地将其设置为true和false。


-2

我也曾经遇到过输出文件夹中不必要的本地化文件夹和resources.dll文件的问题。移除对Microsoft.Expression.Drawing的引用解决了这个问题。

当然,这意味着我不能再使用该库中的任何内容;我在XAML文件中使用<draw:Arc>来绘制弧线。我只是找到了另一种绘制弧线的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接