如何将构建限制为仅支持 EN“Microsoft.Expression.Interactions.resources.dll”,并避免 DE、KR、FR、ES 等...?
Posted
技术标签:
【中文标题】如何将构建限制为仅支持 EN“Microsoft.Expression.Interactions.resources.dll”,并避免 DE、KR、FR、ES 等...?【英文标题】:How can I limit builds to only support EN "Microsoft.Expression.Interactions.resources.dll", and avoid DE, KR, FR, ES, etc...? 【发布时间】:2011-12-07 05:05:11 【问题描述】:当我构建我的 WPF 项目时,它会创建几个语言文件夹,每个文件夹都包含“Microsoft.Expression.Interactions.resources.dll”。
奇怪的是,我从来没有将我的资源字符串翻译成其他语言,但它仍然会创建 DE、KR、FR、ES 文件夹。我只需要EN。
如何将本地化限制为 EN?
【问题讨论】:
重复? 6年前我第一次问,“禁用Dll文化”问题是4年前。所以告诉“禁用 Dll 文化”作者,他的问题与这个问题重复。 【参考方案1】:您看到这些文件是因为您正在使用 Blend SDK for .NET(直接或通过 Prism 库)。该 SDK 包含本地化资源,因此它们会包含在您的构建输出中。
Here's how you create a Silverlight build that targets a specific culture. 它应该与 WPF 的工作方式相同。它的要点是:
-
在您的解决方案中进行新配置。
编辑每个项目文件,将 SupportedCulture 指定为“en”(注意大小写)。
如果您的解决方案非常大,这可能需要大量工作。老实说,在 WPF 应用程序中拥有这些附加文件并没有什么害处——它们只是占用了更多的磁盘空间。您也可以只归档和发送 en 文化资源。假设您已将 NeutralResourcesLanguage 定义为 en 您的应用程序将始终能够找到其资源(它们只会是英文的)。
【讨论】:
谢谢!我指定 en;en-US 只是为了确定 :)【参考方案2】:@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 文件夹中的文化文件夹)? @AlexReed 如果您不需要它们,为什么不能从 SDK 文件夹中删除它们?我记得我没有找到更好的解决方案。或者我认为您可以通过 Post Build VS 项目事件从输出文件夹中删除它们(或将其他所有内容复制到另一个文件夹)。 啊,这很烦人。猜猜我只会做后期构建活动。真的不想删除文件。谢谢。 中断 SDK 或工具包安装不是从项目的构建文件夹中删除本地化资源的推荐方法。至于<SupportedCulture>
not working - 你有一个错字。你输入了<SupportedCultures>
【参考方案3】:
我只是这样处理它。转到参考的属性并执行以下操作:
设置“复制本地 = false”
保存
设置“复制本地 = true”
保存
就是这样。
Visual Studio 2010 最初并未在引用标记中放置:True,并将“本地复制”设置为 false 会导致它创建标记。之后它将相应地设置为 true 和 false。
【讨论】:
【参考方案4】:我对输出文件夹中不需要的本地化文件夹和 resources.dll 文件也有同样的不满。删除对 Microsoft.Expression.Drawing 的引用解决了它。
当然,这意味着我不能使用那个库中的任何东西;我在 XAML 文件中使用 <draw:Arc>
来绘制弧线。我刚刚找到了另一种绘制圆弧的方法。
【讨论】:
以上是关于如何将构建限制为仅支持 EN“Microsoft.Expression.Interactions.resources.dll”,并避免 DE、KR、FR、ES 等...?的主要内容,如果未能解决你的问题,请参考以下文章