问题标签 [al.exe]

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 投票
4 回答
806 浏览

.net - 链接 .Net 程序集

这都是假设的,所以请多多包涵。

假设我正在用 C# 编写一个名为 Foo 的工具。输出是 foo.exe。我发现了一些我喜欢使用的非常棒的库,叫做 Bar,我可以在我的项目中将其作为 bar.dll 引用。当我构建我的项目时,我的输出目录中有 foo.exe 和 bar.dll。目前很好。

我想做的是链接 foo.exe 和 bar.dll,所以它们是一个程序集 foo.exe。我希望能够在 VS2008 中做到这一点,但如果我不得不求助于像 al.exe 这样的命令行工具,我并不介意。

0 投票
1 回答
1294 浏览

asp.net - 将资源文件编译到库时出现问题

我有一个内置在 asp.net 中的 Web 应用程序,它使用资源文件来支持多种语言。我遇到的问题是我只能在 Visual Studio 中添加一个新的语言文件,并且我必须重新构建整个应用程序才能包含一种新的语言。在网上搜索后发现资源文件的编译可以在.net编译器中完成。我使用了以下命令:

resgen.exe /编译 langfile.en.resx

al.exe /out:en\App_GlobalResources.resources.dll /culture:en /embedresource:langfile .en.resources

该文件被复制到网站的文件夹中,但它不起作用。我的意思是,当我从网页中选择新语言时,字符串会从默认资源文件中加载。如果我在 VS 中创建资源文件,它可以正常工作。我检查了两个dll文件的大小,一个是VS生成的,一个是我自己编译的,大小一样,但是编译出来的不行。我只能认为也许我必须在上面的命令中使用一些其他参数,但我真的不知道。

非常感谢任何帮助。

0 投票
1 回答
94 浏览

.net - AL.exe 是否适用于 X.509 证书

我想延迟签名,然后用 X.509 证书对 .NET 程序集进行完全签名。

我该怎么做?

0 投票
1 回答
683 浏览

.net - 如何将 .NET 模块嵌入到独立程序集中?

我正在尝试从网络模块自动生成程序集。我尝试在此命令行中使用“al.exe”工具:al module1.netmodule module2.netmodule /target:library /out:assembly.dll。我的问题是我的程序集没有嵌入我的网络模块,而只是引用它们: - 如果我使用“ildasm.exe”工具打开我的程序集,我只能看到清单 - 如果我将我的程序集导入一个新的 Visual Studio 项目,它除非我复制程序集旁边的两个网络模块,否则不起作用

我尝试了“ILMerge”工具,它似乎在我的简单示例中运行良好:“ildasm.exe”工具显示了正确的类,并且该程序集可以在 Visual Studio 项目中使用。但是我害怕在我的项目中进一步面临一些限制(WPF)。

我的问题是: - 有没有办法使用“al.exe”或“csc.exe”从网络模块生成一个独立的程序集?- 如何真正将网络模块嵌入到程序集中而不仅仅是引用它们?- 我必须使用“ILMerge.exe”吗?- “al.exe”的真正用途是什么?“csc.exe”不能使用“/addmodule”选项做同样的事情吗?

0 投票
1 回答
176 浏览

localization - al.exe 参数太长

我正在尝试为我正在开发的产品创建本地化的附属程序集。我正在使用 resgen.exe 工具将项目中的 .resx 文件编译为 .resource 文件。

然后我使用以下命令将资源文件嵌入到新程序集中。

al.exe /t:lib /out:"C:\Localisation\Translations\dll_files\PBS.POS.UI.Common\es\PBS.POS.UI.Common.resources.dll" /culture:es /embed:"C:\Localisation\Translations\resource_files\PBS.POS.UI.Common\es\ARPaymentMethodLookup.es.resources",POS.POS.UI.Common.ARPaymentMethodLookup.es.resources

/embed: 为每个资源文件重复参数。

我的一个项目有大量的表格,因此有大量的 .resx 和 .resource 文件(每个表格一个)。这会导致 /embed: 参数重复足够多次,以至于命令在控制台中达到 8000 个字符的限制。我因此无法生成程序集。

该产品非常小,我想市场上的其他应用程序已经以某种方式解决了这个问题。理想情况下,我希望避免返回项目中的所有表单并将本地化字符串移动到单个文件中,因为这将是一个非常耗时的过程。

有人有解决方法吗?

0 投票
1 回答
222 浏览

msbuild - MSBuild AL(程序集链接器)计时问题?

我试图在我的 MSBuild 脚本中使用 AL 任务,每次运行它都会得到不同的结果。

我基本上有一个文本文件,我想将它转换为资源(作品),然后从中创建一个 dll(作品),但它始终是非常随机的最终复制和删除任务。AL 任务是否存在时间问题?反正有没有暂停,直到他们完成?

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 投票
0 回答
166 浏览

c# - 从使用程序集链接器提取的 dll 不起作用

我正在使用程序集链接器(Al.exe),因为我将所有资源文件编译成 DLL,但我注意到 DLL 文件在编译时会增加其大小(从 460kb(原始)到 472kb(新))并且它不能作为我用新创建的dll替换原来的dll?

我的问题
创建的 dll 不起作用的可能原因是什么?

顺便说一句,我正在使用此代码:

先感谢您。

0 投票
0 回答
100 浏览

asp.net - 如何在 Visual Studio 之外的 ASP.NET 站点中本地化图像?

我有一个文化中立的 resources.resx 文件,其中包含文本字符串和图像。这编译成“controls.web.dll”。

要求是我生成附属程序集(例如法语的 \fr\controls.web.resources.dll)后代码冻结,其中包含所有翻译的文本和图像,这就是我卡住的地方。

我们有 +-115 .resx 文件。我使用Crowdin.com工具翻译文本字符串,并使用resgen将翻译后的 .resx 文件转换为 .resources ,然后使用 al.exe 将其编译成附属程序。所有这些都是在 Visual Studio 之外完成的,并且可以在我们的构建服务器上进行脚本化/自动化。

我的问题是这个过程适用于文本字符串,因为它们只是由翻译器替换。问题是翻译后的 .resx 仍然引用了中性图像。

我是否必须手动编辑所有 115 个 .resx (XML) 后翻译并将所有图像引用更改为指向每个相应的翻译图像(例如\AttachmentPostBack\Resources\46pxNoImage.fr.png)或者是否有更好、更不痛苦的方法去做这个?微软真的缺乏文档,所以我想知道这是否是在 ASP.net 中本地化图像的最佳方法/实践

0 投票
0 回答
1743 浏览

.net - 我什么时候需要 al.exe(程序集链接器)?

我正在阅读有关本地化的内容,但有一个主题我并没有真正了解。在我正在阅读的书中(开发 ASP.Net MVC 4 Web 应用程序)它说我可以使用程序集链接器(al.exe)从 .resx 文件创建附属程序集,以便应用程序获得一些性能提升,而不是直接从一份文件。

接下来,它给了我一个示例,说明如何通过Visual Studio Command Prompt使用Assembly Linker. 但我为什么要这样做?当我构建应用程序时,会在 bin 文件夹中创建文件夹,其中包含我创建的每种语言的 .dll 文件,即 .resx 文件。喜欢en-US/project.resources.dll

我是否遗漏了一些东西,或者这些不是al.exe用于创建附属程序集时引用的附属程序集?al.exeVisual Studio 在构建应用程序时不能做的事情是什么?