问题标签 [ilmerge]
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.
c# - 是否可以删除 .NET 中未使用的代码/程序集?
我的应用程序中有一个控件库,对于我正在开发的应用程序类型来说有点大。该库超过 2Mb,我几乎不使用它的功能,我会说我使用了它所有功能的 5% 到 10%。
无论如何要从库中删除我的应用程序从不使用的代码?
PS:这个库不是我开发的,也不是开源的(你可以购买代码)。
编辑:我发布这个是因为我虽然可以使用 ILMerge 来实现,但这是过去有人对我说的......我尝试使用 ILMerge 但没有用,我不确定我是否正确使用它。 ..
c# - 使用 wpf 将 dll 合并为单个 .exe
我目前正在从事一个我们有很多依赖项的项目。我想将所有引用的 dll 编译到 .exe 中,就像您对嵌入式资源所做的那样。我尝试过ILMerge,但它无法处理 .xaml 资源。
所以我的问题是:有没有办法将具有多个依赖项的 WPF 项目合并到一个 .exe 中?
.net - Visual Stuio 的编译设置中是否有办法将其他引用的 DLL 组合到构建的程序集中?
我有一个要分发的 EXE,但我不想随它一起发布所有相关的 DLL(有点)。
目前我使用 .NET Reactor 将它们打包在一起。
我曾尝试过 ILMerge 以达到同样的效果,但是当我尝试它时遇到了麻烦 - .NET Reactor 从来没有让我失望过。
有没有办法在 Visual Studio 的编译设置中实现这一点?
这是否意味着在构建操作中结束对 ILMerge 的调用?如果是这样,任何人都可以给我一些关于正确设置方法的指示吗?我愿意给 ILMerge 第二次机会,已经两年了..!
.net - 如何维护两个独立的项目,但将它们合并到一个 DLL 中?
我希望这里缺少一些简单的东西。我正在尝试维护两个独立的项目
这是在典型的 Onion 架构中创建的,因此我可以松散地耦合我的服务并获得更大的灵活性。基础设施项目引用核心项目。编译后,它们会生成这些 DLL
但我想让它只生成 1 个 dll。
我曾尝试使用 ILMerge 来执行此操作,但由于基础设施引用 Core,它会引发异常,因为它找不到 Core dll。它显然不是在寻找自身。
现在我需要维护单独的项目,因为我有一些其他组合引用 Core 和另一个将连接在一起的项目,例如
编辑:我当前的解决方案使用 Nant 构建脚本调用 ILMerge。它成功地合并在一起。但是当我尝试使用合并的 DLL 时,它会抛出异常,因为它找不到核心库。
要清楚一点。我可以使用核心库之外的对象,但不能使用基础设施库。因为一旦尝试实例化这些对象之一,.NET 似乎会尝试加载依赖项但找不到它。
nant - IlMerge 2.9.210.0 的 Nant 任务
有人知道我在哪里可以获得 ILMerge 2.9.210 的 Nant 任务吗?我已经尝试过这个http://code.google.com/p/ilmerge-tasks/但它是针对 ILMerge 的 ILMerge 2.0.7.28 构建的。它说新项目位于 ilmerge.xpdm.us(对不起,新用户,无法发布 2 个超链接),但该链接似乎对我不起作用。有人有其他想法吗?
.net - Is it possible to successfully merge transitive assembly references with ILMerge?
I'm trying to use ILMerge to internalize some transitively referenced assemblies into an assembly I'm referencing to eliminate conflicts with those transitive dependencies elsehwere in my project.
In particular, I'm referencing Antlr3.StringTemplate (hereafter referred to as AS, available here: http://www.stringtemplate.org/download.html). It references Antlr3.Runtime.Debug (ARD) and Antlr3.Runtime (AR). ARD itself also references AR. In ASCII-art, that's:
Because another assembly I'm using, NHibernate 2.1, depends on different, incompatible version of AR, I wanted to use ILMerge to merge and internalize AR into AS. In theory, I think this should work; however, I'm having trouble executing the theory.
No matter what permutations and options I try, I end up with an error of the following form:
ILMerge.Merge: The assembly 'Antlr3.Runtime.Debug' was not merged in correctly. It is still listed as an external reference in the target assembly.
Is what I'm trying to accomplish with ILMerge even possible?
c# - 有没有办法将 pdb 文件与 ilmerge 合并?
由于各种原因,我们使用 ilmerge 将所有应用程序程序集放入一个文件中,因此用户只需要处理一个文件。不幸的是,似乎没有办法将 .pdb 文件与程序集合并。任何人都知道解决这个问题的方法吗?
asp.net - .NET 程序集格式有大小限制吗?
我们遇到了一个我以前从未遇到过的有趣问题。我们在 Visual Studio 2008 SP1 中有一个大规模生产的 ASP.NET 3.5 SP1 Web 应用程序项目,它使用网站部署项目进行编译和部署。去年一切正常,直到昨天签入后,该应用程序开始严重失败,并出现BadImageFormatException
.
有问题的签到并没有改变任何特别的东西,错误来自应用程序的甚至没有改变的区域。使用 Reflector 我们检查了有问题的方法,发现代码中有垃圾字符串(.NET Reflector 幽默地将其解释为汉字)。我们一直在多台机器上复制此内容,因此它似乎与硬件无关。
进一步检查表明,在部署期间用作aspnet_merge.exe输入的程序集中不存在这些垃圾字符串。
aspnet_merge.exe / Web 部署项目输出程序集属性:
- 将所有输出合并到一个程序集中
- 将每个单独的文件夹输出合并到自己的程序集中
- 将所有页面和控制输出合并到一个程序集中
- 为每个页面创建单独的程序集并控制输出
在 Web 部署项目属性中,如果我们将合并选项设置为第一个选项(“将所有输出合并到单个程序集”),我们会遇到问题,但所有其他选项都可以正常工作!
我的问题:有人知道为什么会这样吗?aspnet_merge.exe 的功能是否有大小限制(生成的合并 DLL 约为 19.3 MB)?合并 WAP 的输出是否还有其他已知问题?
如果任何汇编格式/aspnet_merge.exe 专家知道这样的限制,我会很高兴。在我看来,就像一个 25MB 的程序集,虽然很大,但并不离谱。
visual-studio - 何时以及如何将 ILMerge 与 Visual Studio 项目/解决方案一起使用
我正在开发一个中型企业应用程序。有很多项目/解决方案。例如:
- 公司数据
- 公司.Data.LinqToSql
- Company.Entity(业务对象)
- 公司.BLL
然后我有一些应用程序 - 例如一个 Windows 服务:MyWindowsService。
当我部署它(通过创建一个安装项目)时,它会从上述项目的输出中安装一个 DLL 的负载。
这是我应该使用 ILMerge 的地方吗?创建一个程序集.... Company.dll 例如?
我将如何将其集成到我的构建过程中?
c# - C#ILMerge 无法将“ClassY”类型的对象转换为“ClassX”类型
情况如下:我正在使用 ILMerge 使用此方法( custom.dll
) 将程序集及其所有引用合并到 1 个 .dll 文件中。我有一个在运行时动态加载这个程序集的应用程序(program.exe
)。应用程序和程序集都使用公共库 ( common.dll
)。抽象类ClassX
在 中定义,common.dll
而实现ClassY
在 中定义custom.dll
。当program.exe
尝试从中加载 ClassY 时custom.dll
会引发异常:
无法将“ClassY”类型的对象转换为“ClassX”类型。
代码是这样的,但是foo
是动态加载的,而不是直接的 new ClassY();
有谁知道它为什么会这样做? ClassY
绝对实现ClassX
,所有程序集/库版本都完全相同。