创建“便携式”.exe(无安装程序)

时间:2016-05-03 12:30:12

标签: c# .net portability

我最近编写了一个小程序来确定图片中的数字,它依赖于我使用过的两个库。 (DLLs)

由于安全原因,我的目标计算机不允许安装程序,因此我需要创建一个可移植的.exe。 .NET安装在目标计算机上但由于某种原因,VS仍然不包括我在exe中使用的库,而是创建一个带有setup.exe的应用程序文件夹,一些.DEPLOY文件和一个应用程序清单。

我一般都是VS和.NET的新手,所以这个问题很容易回答,但我问,因为我在StackOverflow上找不到任何有用的东西。

4 个答案:

答案 0 :(得分:7)

您可以简单地构建应用程序并复制bin/Debug文件夹,但这仍然意味着您需要多个文件。

要将所有引用合并到可执行文件中,请使用ILMerge。这是some help calling ILMerge

基本上,在构建之后,你应该做这样的事情:

ilmerge /target:winexe /out:SelfContainedProgram.exe 
    Program.exe ClassLibrary1.dll ClassLibrary2.dll

您只需要发送一个文件。

答案 1 :(得分:6)

执行此操作的一种方法是在发布模式下构建应用程序(您可以从下拉列表中选择Debug或Release)。然后转到C:\Projects\[ProjectName]\[ProjectName]\bin\Release(项目文件夹的位置可能会有所不同)。您将看到一堆文件,但您真正需要的只是DLL,可执行文件和配置(如果您使用过的话)。如果您将必要的文件保存在应用程序的文件夹中,则不必进行任何设置,只需将它们全部复制到目标计算机上的文件夹中,如果您需要,则创建快捷方式。很高兴。

答案 2 :(得分:2)

您只需将所有程序集复制到所需的任何文件夹即可。只需选择" Build"从Visual Studio中将文件从bin/debug复制到目标文件夹。

但是,您必须确保所有(相对)路径(如果存在)仍然有效,因为您无法确定程序用户将文件复制到何处。

答案 3 :(得分:0)

一种简单的方法可以是使用7zip Packager,它不需要任何安装程序。但是,VisualStudio方法可能更可靠。