Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用外部.dll创建.exe文件?_C#_.net_Dll_Itext_Exe - Fatal编程技术网

C# 如何使用外部.dll创建.exe文件?

C# 如何使用外部.dll创建.exe文件?,c#,.net,dll,itext,exe,C#,.net,Dll,Itext,Exe,为了解决这个问题,我尝试了几乎所有在网上找到的方法,但似乎都不管用! 我使用wpf从visual studio 2013项目创建了一个.exe文件。我想让这个文件创建PDF,所以我添加了关于itextsharp的references.dll。 如果我把我的.exe文件和itextsharp的.dll文件放在同一个目录中,一切正常。但是当我尝试在外部运行.exe时,程序崩溃了 我尝试过使用ILMerge,我读到合并.exe和.dll非常好,但是当我双击一个新创建的.exe文件时,什么都没有发生 我

为了解决这个问题,我尝试了几乎所有在网上找到的方法,但似乎都不管用! 我使用wpf从visual studio 2013项目创建了一个.exe文件。我想让这个文件创建PDF,所以我添加了关于itextsharp的references.dll。 如果我把我的.exe文件和itextsharp的.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"
谢谢你的帮助

使用project进行合并。与ILMerge合作非常愉快

您只需在项目中安装nuget软件包:

PM> Install-Package Costura.Fody

你差不多完成了。您可以调整,但这并不总是必需的,因为只需安装软件包即可完成批量操作。

通常,您只需将DLL与EXE放在同一文件夹中即可。为什么你想做一些不同的事情呢?为了避免在@joewhite周围拖拽成吨的dll,你必须在每次构建之后运行ilmerge。是你干的吗?还要检查事件日志,并在应用程序中添加异常处理。它可能会向您指出问题所在。我希望这样做是为了拥有一个唯一的.exe文件,并能够将其提供给我的朋友,而无需添加.dll。是的,我这样做了。我只想合并我的最终.exe文件,在命令窗口中,该指令似乎工作正常,它不会告诉我错误。问题是当我尝试运行新的.exe文件时…什么都没有发生!谢谢!很好,你帮我解决了一个大问题:)谢谢!