问题标签 [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 投票
2 回答
1952 浏览

.net - .net 卫星资源 dll 编辑器

是否有任何免费的资源编辑器来编辑已编译的 .net 托管程序集?

我的一位客户要求在其应用程序的 Windows 窗体控件上编辑文本。我将所有文本(字符串)放在一个单独的资源文件中。我可以在 Visual Studio 中编辑它们,但为了让客户端编辑它们,我想他们必须能够反编译 dll 并编辑生成的 rc 文件,然后再次编译它们,我不建议这样做,因为它太麻烦了。

我想知道是否存在任何可以自动执行的资源文件编辑器。

0 投票
1 回答
445 浏览

resources - 从 Wix 中的附属程序集中读取字符串资源?

是否可以通过 WIX 从资源 DLL 中读取资源,而不是硬编码 WXS/WXL 文件中的字符串?我有卫星 DLL 中的资源,我需要更高效的东西,然后在 WXS/WXL 文件中复制和硬编码它们。

谢谢

0 投票
0 回答
430 浏览

.net - 在不重新编译的情况下更新卫星程序集

我有一个由许多其他 Web 应用程序使用的类库项目。我想为该类库创建一个附属程序集。当我更改资源字符串之一时,我不想重新编译/重新部署类库。

虽然我认为我了解卫星组装的概念,但我不了解如何构建它以便我可以按照我想要的方式使用它。

默认情况下,当您将资源文件添加到 Visual Studio 中的项目时,它会将其构建操作设置为“嵌入式资源”。

所以,我的项目被称为MyProject. 我有一个名为的默认资源文件MyProject.Resources.resx和另一个名为MyProject.Resources.fr.resx.

当我构建时,我得到的只是MyProject.dll一个“fr”子文件夹MyProject.resources.dll

所以我理解它的方式是主程序集(MyProject.dll)包含默认资源,因为它被设置为嵌入式资源。但是,如果不重新部署整个程序集,我就无法更新资源,这对我不利。

我在 MSDN 上阅读了有关使用 AL.exe 打包程序集的信息,但我仍然不明白:

如何设置 Visual Studio,以便将我的资源文件作为单独的文件从主程序集中输出?根据我在 MSDN 上阅读的内容,我需要 .resource 文件,但我不太确定。

一旦我按照我想要的方式得到它,如果我想修改资源文件我会怎么做?我想我会更新 Visual Studio 中的资源,构建项目并仅复制目标服务器上的资源 DLL,对吗?我能否将它们直接复制到 GAC 中,MyProject.dll并且一切仍然可以正常工作?

谢谢!

0 投票
2 回答
533 浏览

c# - 项目间资源共享策略

我有一个名为 Core 的中央库 (DLL),许多项目(一些 Web 应用程序、一些 win 表单、一些其他类库)都在使用它。

一些资源存储在核心库中。

当我需要使用 Core 库中的资源文件时,我需要知道文化信息是什么。因为它有时在 win 表单应用程序中使用,有时在 web 应用程序中使用,我不能真正使用来自 HttpContext 或来自 CurrentThread 的文化。

我想这是一个常见的问题,所以我想知道:

在 DAL dll 和 UI 项目之间传递文化信息的好策略是什么?

0 投票
4 回答
3539 浏览

msbuild - 什么决定了附属程序集的目标框架版本?

什么决定了附属程序集的目标框架版本?

查看日志文件,我可以看到附属程序集是通过运行 ResGen.exe 和 Al.exe 构建的,但我不知道是什么决定了生成程序集的目标框架。

背景

我正在尝试解决一个问题,即当我在构建服务器上构建卫星程序集时,它会针对 .NET 4.0 运行时,而当我在开发计算机上编译它时,它会针对 .NET 2.0 运行时。解决方案的其余部分针对 .NET 2.0 运行时,如果它针对 .NET 4.0 运行时,可执行文件将不会加载附属程序集。

我尝试在构建服务器上使用 msbuild“手动”构建项目,这也导致了针对 .NET 2.0 运行时的附属程序集。

当我使用自动构建服务器构建时,我只会得到错误的目标运行时版本 4.0。

0 投票
2 回答
1471 浏览

.net - 创建卫星组件

当我尝试在命令提示符下使用al.exe创建附属程序集时,出现以下错误。

ALINK:错误 AL1019:创建程序集时元数据失败——访问被拒绝。

我该如何解决这个问题?

0 投票
1 回答
2937 浏览

c# - Warning AL1073 when generating satellite assemblies

Under Visual Studio 2010, I am getting a compiler warning when generating a localized satellite assembly for a project. I am running Windows 7 64-bit.

The project is being built in x86 (it has to be as it indirectly references an unmanaged DLL - via Oracle ODP.NET).

The MSBuild log generates the following warning:

(GenerateSatelliteAssemblies target) ->

ALINK : warning AL1073: Referenced assembly 'mscorlib.dll' targets a different processor [xxx.csproj]

Is there any way to force this to use the same version of the framework as the assembly it is being generated from?

It is very frustrating as I like to have zero warnings in our build, and this is always there.

0 投票
2 回答
2559 浏览

c# - c#插件DLL本地化资源的路径

在我的 C# 应用程序中,我有一个插件机制,可以从配置 XML 文件中指定的不同路径加载插件 DLL。我的应用程序是可本地化的。.\en\en-US\main.resources.dll主程序集(*.exe)以标准 .NET 方式(例如;;.\de\de_DE\main.resources.dll等)在 exe 旁边具有本地化语言的附属程序集。

我开始本地化一个插件,不得不发现附属程序集必须放在 exe 旁边的文件夹中。将其放在插件 DLL 旁边时,资源管理器找不到它。

但是,由于我的插件是可互换的并且可能在不同的文件夹中,我非常希望将本地化的资源程序集放在插件旁边,而不是放在 exe 旁边。

这可能吗?!?!

我可以接受的另一种方法是将本地化资源嵌入到 DLL 中。这可能吗??

干杯,菲利克斯

0 投票
1 回答
672 浏览

.net - 什么工具可以更改现有程序集的属性(特别是程序集名称)?

我试图混淆我的 silverlight 应用程序。它包含两个程序集,我正在使用混淆器的“合并程序集”功能。正在与主程序集 (A1) 合并的程序集 (A2) 具有资源,并且它是一个本地化程序集,因此有一个根据卫星文化特定程序集名称命名的相应本地化程序集 (A2loc)。

然而,在合并期间 A2(与资源的程序集)变为 M(A1+A2) 并且 A2localized 不再是 M 的卫星程序集,因为它具有旧的 A2 名称。我很确定我是否更改 A2loc 程序集属性以匹配新程序集名称 M 它将工作。

问题:例如,可以使用哪个工具来获取现有程序集并修改其程序集名称?

当我简单地重命名卫星程序集 A2loc 以匹配 M 程序集名称时,应用程序开始在加载时崩溃。

我描述了整个过程,因为也许有人可以提出更好的方法。

0 投票
0 回答
632 浏览

c# - 从 .dll 使用的附属程序集

我正在尝试实现卫星程序集。我的情况与普通情况略有不同。

  • 我有一个可执行程序集(我们称之为 A.exe)和一个 .dll 程序集(B.dll)

  • A.exe 引用 B.dll 和 A.csproj 是我的解决方案中的启动项目

  • 我的字符串文件在程序集 B(类库)中

  • 我创建了卫星组件并将它们放在项目 B 的 Bin 文件夹中。

  • 问题是,无论我提供哪种文化,它总是依赖于嵌入在项目中的默认文化。(卫星组件不是)

  • 当我尝试将默认字符串文件和卫星程序集放在 .exe 项目中时,它们可以工作,但是一旦我将它们转移到 .dll 项目中,它们就不会

    有没有人对我的情况有任何解决方案。我无法将字符串文件放在 .exe 项目中(业务需求)

首先十分感谢。

由于我无法在单独的回复中回答我自己的问题,因此这是解决方案:

您需要将 Satellite 程序集的 .dll 文件放在库和可执行程序集的 \bin 目录中。

我从这个网站上的项目开始:

例子

并且只是详细说明了它以包含一个库类。我希望有办法把它贴在这里……如果有办法将项目附加到帖子上,请告诉我。