问题标签 [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.
.net - 为具有多种资源和多种语言的大型解决方案生成附属程序集
我有一个非常大的解决方案(>100 个项目),它被翻译成 10 多种语言。在构建过程中生成所有必要的附属程序集的最佳方法是什么?
我知道我可以在他们的相关项目中包含本地化的 RESX 文件,但这会给开发人员带来很多麻烦。翻译由一个远程团队管理,他们独立地将它们检查到源代码控制中。这也会在每次添加新语言时产生大量工作,因为每个项目都必须进行修改以包含新的文化特定资源。
是否有任何构建后工具可以搜索特定于文化的 RESX 文件,将它们分组到项目中并一次构建附属程序集?
如果没有,我想我可以使用DependentUpon属性在主资源文件下的 Visual Studio 解决方案资源管理器中隐藏本地化资源。这不能在 Visual Studio UI 中完成,所以我想我必须构建一个工具,将这种模式批量应用于所有项目中的所有资源文件。生成的项目文件如下所示:
嵌套资源在解决方案资源管理器中有一个意外图标,但至少默认情况下它们是隐藏的。
wpf - 如何在 WPF 中制作不可本地化的 SplashScreen
我只是在我的下一个 WPF 应用程序中添加国际化,并按照此处的说明进行操作。
然后我注意到卫星 DLL 中会有相当多的重复,因此将不会在 .csproj 中本地化的图像标记为
不幸的是,我的其中一个资源在 SplashScreen 中使用,因此:
这会在执行 Show 调用时引发异常。这是异常输出
附加信息:“对与指定绑定约束匹配的“MainWindow”类型的构造函数的调用引发了异常。行号“4”和行位置“9”。
当我删除 False 线时,它再次起作用。
有没有办法加载我想要的资源,它存储在 test.unlocalizable.g.resources 中?
.net - 使用 Al.exe 创建附属程序集
我正在尝试使用 Al.exe 创建附属程序集。
要从.ressources
文件创建程序集,我正在执行以下命令:
第一个问题:
fileversion、productv 和 keyf 是否必须与我部署的应用程序的文件版本、产品版本和密钥相同?
第二个问题:
为什么当我将生成的 DLL 部署到 GAC 时,版本列变为 0.0.0.0 ?但是当我在 GAC 中查看它们的属性时,为什么文件版本和产品版本是正确的并且版本字段是 0.0.0.0?
非常感谢你。
c# - 使用附属程序集进行本地化
我正在尝试在 WinForms 应用程序中使用卫星程序集进行本地化。目录结构如下:
- 斌
- 程序.exe
- 德
- 程序.resources.dll
在 Program.exe 中,此代码在Main
方法中执行:
我检查了 FUSLOGVW.exe 输出:
这看起来不错,但是字符串并没有被本地化——仍然使用 Program.exe 中的默认字符串。
要获取字符串,我使用 Visual Studio 生成的Res
类从Res.resx
.
我在这里想念什么?
编辑:为那些比我更了解它的人添加了完整的 FUSLOGVW 输出。
asp.net - 为具有 Silverlight 和 ASP.NET 应用程序的解决方案提供用于全球化的卫星组装的单独项目
我试图找出一种方法,为我在同一个解决方案中的两个应用程序创建一个单独的项目。这可以做到吗?我找不到任何示例,甚至使用卫星程序集进行全球化的教程都非常糟糕。我希望这两个应用程序共享一个共同的资源库。有谁知道我会怎么做?Silverlight 不能引用非 silverlight 项目,所以这已经是一个障碍。
c# - 嵌入在多个 Satellite Assembly 中的资源
我知道有几个关于卫星大会的问题,但是在尝试实施它们时我仍然遇到了一些麻烦
我的目标是在一个程序集中分离每种文化,让我可以灵活地在需要时一次只重新编译一个程序集,如果我只想对一种语言进行一些小的更改,我不想编译所有语言语
我想充分了解卫星大会的工作方式。这是我目前的理解:
卫星程序集可以放在 bin 目录中,而无需重新编译整个应用程序,这意味着应用程序不需要这些程序集即可正常工作(只要指定了备用资源)
SA 必须与单一文化相关联
现在我可以使用该工具生成 SA al
,如果我添加 .resx 文件,Visual Studio 可以为我生成 SA,SA 已创建(在 bin 文件夹中,我可以看到指定区域性的文件夹结构)
问题1.这些dll是不是等价的,一个是Visual Studio生成的,一个是al
工具生成的?
问题 2.所有这些 dll 是否必须共享一个通用名称才能工作?(我知道他们应该保持一致性,但如果他们不共享名称,让我们说使用al
指定不同名称的工具创建它们)它们仍然可以被要加载的.Net框架识别吗?
问题 3.如果我想使用ResourceManager
该类,是否必须为每个装配文化实例化一个实例?(并且由于它们的名称中包含区域性,因此它们具有不同的程序集名称,我是否必须手动格式化嵌入的资源文件以加载以匹配当前区域性并手动加载该程序集?因为它们可能不会在第一次加载,我是否必须通过指定文化文件夹中的文件路径来手动加载它?)
问题 4.这些 SA 是由 .Net 框架自动加载的,还是我必须显式加载它们?
问题 5。如果我必须加载它们,这意味着如果我想在我的控制标签中以声明方式指定资源,我是否必须创建并注册一个自定义资源工厂才能加载它们?
问题 6.如果我在 Visual Studio 的一个类项目中添加多个文化的多个资源而没有代码,它们会自动嵌入,当我编译时,会创建每个文化的附属程序集,这些 dll 是否相关?我想知道它们是否按名称、名称空间或其他东西相关
所有这些问题都基于此:我认为我可以将程序集添加到 bin 文件夹并在ResourceManager
. (这就是为什么我关心程序集名称或几个附属程序集是如何相关的)就像在单个程序集中定义资源时一样,您只需Resources.MyResourceKey
调用
我很感激你的帮助,这个话题让我发疯了=(
xamarin.android - MonoDroid:卫星程序集不是应用程序包的一部分
我正在使用 MonoDroid 基于 WPF/Silverlight/MonoTouch 之间共享的通用代码构建 Android 应用程序。该公共代码中的字符串通过 RESX -> 附属程序集“本地化”。RESX 设计器是通过 ResXFileCodeGeneratorEx 生成的,这是在 WPF/Silverlight XAML 中直接使用“本地化字符串”的最佳方式。
但来到 Android 时,本地化字符串始终是“默认”字符串,而不是本地化字符串。附属程序集不是应用程序包的一部分。关于如何添加/链接附属程序集的任何提示?
(当然卫星程序集是编译的!)
干杯,帕特里克
asp.net-mvc-2 - MVC 2 - 嵌入式资源是否需要 Sattelite 程序集?嵌入式资源不起作用
您好,我一直在开发 MVC 2.0 Web 应用程序。这需要在两种语言之间切换。
现有解决方案效果不佳,因为 MVC [DisplayName] 属性和数据注释错误消息等无法正常工作,因为它们在 MVC 2.0 中不具备文化意识。
通过一些调整,它在我的 Visual Studio 环境中都能完美运行,并且现在可以切换语言并使用 MVC 显示名称等。我正在使用嵌入式资源并且有一个英文 resx 文件(例如 MyPage.resx)和文化版本(例如 MyPage.cy-GB.resx)。
问题是当我将它安装到生产环境中时,它不会切换语言。我很困惑,因为我认为这些嵌入式资源将是主 Web 应用程序 dll 的一部分,所以它应该可以轻松找到匹配的资源?
我知道这肯定会改变当前线程的文化。它只是没有加载匹配的资源。
该应用程序是使用 WIX 安装的,但我已包含所有文件(aspx 等)。以前它使用附属程序集并在 bin 文件夹中使用文化名称创建资源 dll。我删除了这个,因为我只是使用提到的嵌入式资源。卫星组件是否对此有要求?我很高兴他们被嵌入。
我真的很困惑如何解决这个问题,所以任何建议都会非常受欢迎。
谢谢
c# - 如何处理多个资源文件进行本地化?
我有一个使用大量资源字符串的项目。因此,我根据模块将它们组织为文件夹结构。
就像如果模块 A 是一个文件夹,那么在模块 A 下我有以下文件。
类似的是模块 B 的结构。
但我只想拥有一个类文件或如果不可能的话单个包装类(对于与每个资源文件有关的多个类)来获取资源字符串。我正在尝试类似 GetString(moduleA.ResourceFileA1.String)
我已经尝试过这里解释的东西但无法正确处理。有人可以帮忙吗?
提前致谢,
c# - 如何在 ASP.NET 中以声明方式使用附属程序集
就是这样,我一直在学习附属程序集,并且我想我已经了解如何创建它们以及如何在代码中使用它们与 ResourceManager
问题是我想通过页面的标记(以声明方式)使用卫星组件,但我还没有找到一种方法来做到这一点。
有什么想法吗?
我的目标是能够像这样使用它们: