我正在使用ILMerge来结合使用C#.NET 4编写的9个.NET DLL。问题是ILMerge卡住,没有错误信息或任何东西。 该日志显示ILMerge正确合并所有程序集,然后着手编写目标程序集。 它运行一大堆引用的程序集parsing器,然后..什么也没有。 成功parsingSystem.Configuration后,日志中没有显示其他内容。 该程序继续使用CPU,但我不知道它是否在做任何事情。 其他人有类似的经历?
我目前正在做一个项目,我们有很多的依赖关系。 我想将所有引用的dll编译到.exe中,就像使用embedded式资源一样。 我已经尝试ILMerge,但它不能处理.xaml资源。 所以我的问题是:有没有办法将WPF项目与多个依赖关系合并成一个.exe文件?
两个问题: 1)不包含在ILMerged程序集中的基本.NET程序集 从.NET 3.5 / Visual Studio 2008升级到.NET 4 / Visual Studio 2010后,我在使用ILMerge进行后构build时遇到了问题。我有一个解决scheme,其中有几个项目的目标框架设置为“.NET Framework 4” 。 我使用下面的ILMerge命令将单个项目DLL合并到单个DLL中: if not $(ConfigurationName) == Debug if exist "C:\Program Files (x86)\Microsoft\ILMerge\ILMerge.exe" "C:\Program Files (x86)\Microsoft\ILMerge\ILMerge.exe" /lib:"C:\Windows\Microsoft.NET\Framework64\v4.0.30319" /lib:"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies" /keyfile:"$(SolutionDir)$(SolutionName).snk" /targetplatform:v4 /out:"$(SolutionDir)bin\development\$(SolutionName).dll" "$(SolutionDir)Connection\$(OutDir)Connection.dll" …other project DLLs… /xmldocs 如果我没有指定.NET 4框架目录的位置,则会从ILMerge中得到“未parsing的程序集引用不允许:系统”错误。 如果我没有指定MSTest目录的位置,我得到“未parsing的程序集引用不允许:Microsoft.VisualStudio.QualityTools.UnitTestFramework”错误。 上面的ILMerge命令工作并产生一个DLL。 但是,当我在另一个.NET 4 C#项目中引用该DLL并尝试使用其中的代码时,出现以下警告: 主要引用“MyILMergedDLL”无法parsing,因为它具有.NET Framework程序集“mscorlib,Version = […]
所以,正如标题所示,我现在有一个VS2010解决scheme,里面有大约50个项目。 如果我改变了一个没有任何引用的“顶级”项目,VS仍然重build所有50个项目。 我正在运行Visual Studio 2010 Ultimate,没有任何附加组件。 我正在使用ILMerge将所有项目合并到一个文件中。 我已经通过检查低级DLL的时间戳validation了这一点,并且看到它们确实被重build,即使它们的代码没有被触摸。 我已阅读所有回复和评论: Visual Studio 2008不断重build Visual Studio不断构build一切 在我的解决scheme中发生奇怪的VS2010生成故障 在Visual Studio中重buildC#项目的原因 但他们大多只是提出卸载项目的build议,以加快构build时间,但没有具体的解决办法。 我试图找出为什么VS认为这些依赖项目需要重build时,他们不和解决它。 我打开了“工具”>“选项”>“项目和解决scheme”>“构build和运行”>“仅运行构build启动项目和依赖关系”,但没有任何效果。 另外,如果我只重build一个只有8个(直接)依赖关系的“中级”项目,那么即使ILMerge没有被调用,也没有任何依赖项目被修改,它仍然会build立所有8个项目。 感谢大家的任何洞察力,你可能能够提供。 添加 为了testing一些build议,我从头创build了一个新的WinForms项目。 然后,我在该解决scheme中创build了两个新项目。 我从我的两个“最低级别”项目中将所有的代码和资源(不是项目文件)复制到两个全新的项目中(我通过将文件和文件夹从资源pipe理器中删除到Visual Studio中的项目上)。 最低的项目,我们称之为B ,没有引用任何其他项目。 下一个项目A只参考B. 所以一旦我将所需的.NET和外部程序集引用添加到项目中,那么解决scheme就会生成。 然后,我有我的新的WinForm项目参考A ,并做了一个完整的构build。 所以参考链是: WinForm – > A – > B 然后,我只修改了WinForm并做了一个标准的构build(F6)。 和以前一样,Visual Studio重build了所有三个项目。 在项目B中对源文件进行了一些系统化的布局之后,我发现如果我删除了Resources.Designer.cs和Resources.resx (并且注释了使用这些资源的.Properties.Resources对象的代码),那么修改WinForm将不再重build整个解决scheme,只会重buildWinForm 。 将Resources.resx和Resources.Designer.cs添加回项目B (但将引用的代码注释掉,以避免使用资源)将重新引入完整的构build行为。 为了查看我的资源文件是否损坏,我再次删除它们,然后创build一个新的(通过项目属性 – >资源),并重新添加与之前相同的资源,这是一个单独的Excel文件。 有了这个设置,完全重build仍然会发生。 然后我删除了单个资源,但将资源文件留在项目B中 。 […]
我想合并一个.NET DLL程序集和一个VB.NET控制台应用程序项目引用的C#类库项目到一个命令行控制台可执行文件。 我可以从命令行使用ILMerge完成此操作,但是我想将参考程序集和项目的合并集成到Visual Studio项目中。 从我的阅读中,我明白我可以通过MSBuild任务或目标来完成此任务,并将其添加到C#/ VB.NET项目文件中,但是由于MSBuild是一个大型主题,所以没有具体的例子。 此外,我发现一些引用将ILMerge命令添加到Post-build事件中。 如何将ILMerge集成到只是MSBuild项目的Visual Studio(C#/ VB.NET)项目中,将所有引用的程序集(copy-local = true)合并到一个程序集中? 这是如何绑定到一个可能的ILMerge.Targets文件? 使用Post-build事件会更好吗?
你用ILMerge吗? 你使用ILMerge来合并多个程序集以缓解dll的部署吗? 在将ILMerging程序集合在一起之后,您是否发现部署/版本控制方面的问题? 我正在寻找一些关于使用ILMerge减less部署摩擦的build议,如果这是可能的话。
我有两个DLL文件,我想包括在我的EXE文件,以便更容易地分发它。 我已经在这里和那里读了一些怎么做,甚至在这里发现了一个很好的线程,但是这对我来说太复杂了,而且我需要关于如何做到这一点的基本指导。 我正在使用Microsoft Visual C#Express 2010,请原谅我的“低标准”问题,但我觉得我比其他人的经验低一到两个级别:/如果有人可以指出如何合并这些DDL文件我的EXE在一步一步的指导下,这将是非常棒的!
我使用EXE项目(Azure应用程序的启动任务)来使用我的服务堆栈,因为我已经将以下服务堆栈的DLL和一些Azure的DLL复制到EXE项目中。 当我构build这个EXE项目时,Azure DLL将与我的EXE捆绑在一起,但是服务栈的DLL不会与EXE捆绑在一起,因为要在任何机器上运行我的EXE,我需要手动拷贝所有服务栈的DLL。 我已经使用这个服务栈的DLL来使用 JsonServiceClient client = new JsonServiceClient(servicepath); 我需要做什么来将所有这些DLL绑定到我的EXE中?