问题标签 [satellite-assembly]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
705 浏览

.net - .NET 4 - CLR / .NET / ASP.NET 4 中的附属程序集(语言资源)DLL 加载更改

有人知道.NET/CLR/ASP.NET 4.0 中附属程序集的加载是否发生了变化吗?

现在似乎对资源的 GetString 操作正在调用以首先检查程序集是否以 en-US、en-GB、en-AU 等方式加载,然后从 en 目录加载。

这是设计改变吗?这给我们带来了巨大的性能倒退。

0 投票
1 回答
1739 浏览

c# - 如何加载相对于 DLL 的附属程序集

我有一种情况,我提供了一个使用 .NET 4.0 的插件 DLL。此 DLL 使用 ResourceManager 加载字符串。这些字符串依次被翻译并编译成附属程序集。

我不是加载和使用我的插件 DLL 的主 EXE 的作者。它从另一个目录运行。因此,DLL 找不到它的附属程序集。ResourceManager 希望在 EXE 目录下而不是 DLL 所在的目录下找到它们。

如何让 ResourceManager 加载相对于 DLL 的附属程序集?

0 投票
1 回答
350 浏览

c# - 在本地化方面,我什么时候应该使用 Satellite Assemblies?什么时候应该使用资源文件(.resx)?

我正在创建一个 Windows 应用程序,我想在其中进行一些本地化。该应用程序还将使用可能使用与主应用程序不同的语言 (CultureInfo) 的 DLL。这两个本地化概念中的哪一个最适合我的案例?

0 投票
1 回答
4157 浏览

c# - StaticResource 资源在外部程序集中的位置?

基本上,我想将所有 XAML 资源保存在外部程序集中(用于我的样式)。我的应用程序中有这个外部程序集的引用。

是否与附属程序集或诸如此类的东西有关,或者我如何访问这些样式,以便我的应用程序仍然可以具有 StaticResource 标记而不会出现编译错误?

0 投票
1 回答
842 浏览

wpf - 未拾取 WPF 附属程序集

我有一个演示应用程序,其中我使用了一个具有多种语言的 3rd 方库。为了测试本地化是否有效,我将 CurrentUICulture 设置为荷兰语:

我还在 Properties.Resources.Get[xxx] 上设置了一个断点,这样我就可以看到发生了什么。因此,当我遇到该断点时,我注意到这些模块已加载:

这看起来不错(他选择了 nl 语言,并将附属程序集作为模块加载)。但是,资源管理器不断返回资源的英文版本...

当我在反射器中打开荷兰卫星组件时,我可以看到荷兰资源,因此卫星组件看起来很好。

0 投票
2 回答
3321 浏览

.net - 在特定文件夹中部署 .NET 附属程序集

我正在开发一个 C# .NET 应用程序,并且正在使用资源文件执行本地化。我有特定于文化的资源文件,例如:

  • 我的资源.resx;
  • MyResource.fr-FR.resx;
  • MyResource.ja-JP.resx;

构建后,在应用程序根文件夹中,有 , 之类的文件fr-FRja-JP

例如,是否可以将所有本地化资源文件和文件夹移动到同一个文件夹中Languages

更新1:

我用下面的代码解决了这个问题。似乎当我将应用程序复制到另一个地方时,它无法加载资源。正如我所看到的,application.config 文件也需要在那里。如果我将 app.config 作为嵌入资源,它就不起作用。

有没有办法,如何在没有同一目录中需要的 .config 文件的情况下做到这一点?

谢谢

0 投票
1 回答
202 浏览

c# - 如何在卫星组件上使用反射?

如何在卫星组件上使用反射?反映普通组件和卫星组件有什么区别吗?

请用例子和参考来补充你的答案。谢谢!!

0 投票
1 回答
1279 浏览

resources - 使用具有多个 resx / 资源文件的 ResGen 和 AL 的强命名卫星程序集

无论出于何种原因,将多个 .resources 文件编译为单个附属程序集 (.dll) 时,资源将不会显示。编译单个资源将起作用。这是我使用的步骤...

  1. 我们有一个名为“报表查看器”的项目。该项目使用密钥 MySnKey.snk 通过 Properties > Signing > Sign the assembly 进行签名,选择一个强名称密钥文件:MySnKey.snk。
  2. 所有表格已更新为 Localizable = True
  3. 我们将所有 resx 文件处理成德语 de-DE。resx 只有两个:MainForm.resx(项目根目录)和 Resources.resx(Properties 目录)。
  4. 我有一个包含 MainForm.de-DE.resx 和 Resources.de-DE.resx 的文件夹,它们是这些文件的翻译版本。
  5. 使用resgen,

    > "C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\ResGen" /compile Resources.de-DE.resx ReportViewer.Resources.de-DE.resources

    > "C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\ResGen" /compile MainForm.de-DE.resx ReportViewer.MainForm.de-DE.resources

这将创建适当的 .resources 文件。现在要链接,我使用 AL.exe:

> "C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\AL" /t:lib /embed:ReportViewer.MainForm.de-DE.resources,ReportViewer.Resources.de-DE.resources /culture: de-DE /out:ReportViewer.resources.dll /template:../../../Output/ReportViewer/bin/Debug/ReportViewer.exe /keyfile:../MySnKey.snk

这将创建一个 ReportViewer.resources.dll 文件。如果我将其放入适当的子文件夹 de-DE>ReportViewer.resources.dll,则不走运。在 Program.cs 中,在调用 Run 之前,我有

如果,我只包括 MainForm

> "C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\AL" /t:lib /embed:ReportViewer.MainForm.de-DE.resources /culture:de-DE /out:ReportViewer.resources。 dll /template:../../../Output/ReportViewer/bin/Debug/ReportViewer.exe /keyfile:../MySnKey.snk

显示相应的资源。

这让我很困惑。如果我将 .resx 文件添加到解决方案并进行编译,则输出 dll 可以正常工作,但我们试图避免将这些附属翻译带入解决方案。

没有生成错误并且创建了文件,所以我不知道我没有做什么。

任何帮助是极大的赞赏。我比较了在运行 AL.exe 时将文件添加到输出文件的解决方案时输出 dll 之间的差异,它们都包含所有翻译。

编辑以包含解决方案,因为我无法回答问题

显然我对嵌入选项及其用法感到困惑。要正确使用 AL.exe 实用程序,我必须使用:

请注意,上面添加了 Properties 命名空间。我以前没有这样做过。

请注意,没有添加任何 Properties 命名空间,因为 MainForm 只是在 ReportViewer 命名空间中。

请注意,此行中有多个 /embed 项。我使用的是逗号,它重命名了内部结构,这不是我想要的。在文件之间提供空格会产生(看似)不相关的错误。请参阅http://ondotnet.com/pub/a/dotnet/2002/10/14/local2.htm?page=2以获得一篇精彩的文章。

为了完整起见,编写此脚本的另一种方式是

注意这里没有重命名,输出只是 Resources.de-DE.resources

注意这里没有重命名,输出只是 MainForm.de-DE.resources

请注意,重命名是在嵌入选项中的逗号之后完成的。第一个参数是文件名(.resources 文件),逗号后面是完全限定名(namespace.class.xx-XX.resources)。

0 投票
2 回答
696 浏览

c# - 如何停止扫描 .resources.dll

我正在使用 Process Monitor 检查我的应用程序。(.NET 框架 4,WPF 应用程序)我观察到,对于我的应用程序中的每个 dll,它都在寻找“mydllname”.resources.dll 我的应用程序有超过 100 个 dll。但是它只有一种语言支持。而且我没有使用任何资源、.resx 或类似的东西。

我怎么能阻止它?还是 .NET 框架总是为每个引用的 dll 寻找 .resources.dll 。谢谢。

0 投票
0 回答
198 浏览

asp.net - 使用 WinForms 和 ASP .NET 简化全球化方法

II 是全球化的新手,需要制定多语言解决方案。

我进行了很多搜索,但没有找到一种简化的方法来实现以下目标:

  • 使用中性和特定于文化的资源文件创建附属程序集。
  • 在 WinForms 应用程序中使用上述程序集
  • 在 ASP .NET 应用程序中使用相同的程序集

在 WinForms 中,这篇文章很有帮助,这里是清理部署目录的好方法。

不过,我还没有找到在 ASP .NET 中使用这些附属程序集的方法。