2017-02-27 54 views
1

我已经尝试了网上找到的几乎所有东西来解决这个问题,但它似乎不起作用! 我使用wpf从visual studio 2013项目创建了一个.exe文件。我想要这个文件来创建PDF文件,所以我添加了关于itextsharp的参考文件.dlls。 如果我将我的.exe文件保存在与itextsharp的.dll相同的目录中,一切正常。但是,当我尝试在外部运行.exe时,程序崩溃。如何使用外部.dll创建.exe文件?

我试着使用ILMerge,我看这是相当不错的合并.exe和.dll,但是当我双击一个新创建的.exe文件没有任何反应。

我在命令窗口中写的命令,一旦在ILMerge文件夹,是:

ilmerge C:\Users\Utente\Desktop\PDFWriter.exe C:\Users\Utente\Desktop\itextsharp.dll /out:C:\Users\Utente\Desktop\merged.exe /target:winexe /targetplatform:"v4,C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5" 

感谢您的帮助!

+2

通常你只要把你的DLL在同一文件夹中的EXE。你为什么想做一些不同的事情? –

+0

为了防止需要拖拽@JoeWhite周围的吨的dll –

+2

你必须在每次构建后运行ilmerge。是你做的吗?还要检查事件日志,并在您的应用程序中添加异常处理。它可能会指出你的问题。 –

回答

1

使用Fody.Cosura项目进行合并。与ILMerge相比,合作很多。

所有你需要做的是在项目中安装NuGet包:

PM> Install-Package Costura.Fody 

而你几乎完成。您可以调整configuration,但这并不总是必需的,因为只需安装该软件包即可满足您的需求。

+1

非常感谢!它工作正常,你解决了我一个大问题:)谢谢! – Aranel