2011-05-22 110 views
15

所以我做了一个C#程序,它的伟大和所有(它的Windows窗体应用程序)。它的问题是,我不知道如何在调试模式窗体外使用它。我如何发布它?我的目标是创建一个两个文件夹,将一个快捷方式放到一个应用程序中,另一个文件夹将包含应用程序和所有外部程序(一些按钮链接到批处理文件)。然后,我希望能够将其放入RAR压缩文件中,并在线上传以供其他人下载。如何发布Windows Forms应用程序?

如何发布它以便发生?我如何从调试模式中取出它?

+0

那不是很wize创建你自己的每一个平台更新/下载/ maintinance解决方案,点网框架呢,除非你正在使用ClickOnce技术。我会教你如何做到这一点,如果你相应地改变你的问题 – 2011-05-22 13:43:09

+0

如果你将使用ClickOnce,你将能够自动更新你的应用程序到客户端,如果需要,也可以覆盖(例如,打电话在实际使用spwned进程更新文件之前的一些批处理,使用ClickOnce技术通知用户可用更新等应用程序的分发逻辑。您将能够直接从您的建筑环境发布您的更新版本。 – 2011-05-22 13:51:38

+0

此外,ClickOnce技术可在几乎任何Web分配平台上提供,包括ASP.NET IIS或PHP Apache或Mono。它也可以构建可更新的CD发行版或网络共享。 – 2011-05-22 14:02:41

回答

17

进入您的项目文件夹,然后导航到/ bin/Release。如果有一个带有项目标题的EXE文件,请将其复制到某个位置(以及可能已链接的任何DLL),然后就是您的程序。如果不存在,请先在Visual Studio中尝试编译 - >编译解决方案。如果它仍然不存在,请导航至/ bin/Debug并执行相同的操作。然后,将所有批处理文件复制到另一个文件夹中,将它们放入同一个文件夹,然后将其复制到RAR中。

P.S.尽量不要使用RAR,很少有人可以提取它们。如果可能的话,使用ZIP或SEA(自解压存档)。

+1

WinRAR ....它是免费的。 – Alper 2011-05-22 01:22:10

+5

因为您建议将Debug目录中的输出RAR,所以我低估了您的答案。除非您有特定的理由这样做,否则您不应该分发该应用程序的调试版本。 – debracey 2011-05-22 01:29:17

+4

@Jacob:嗯,是的,但ZIP功能内置于Windows,Mac和Linux。你必须安装WinRAR,并且一些有限权限的人不能这样做。当然,如果你的程序需要这样的权限运行,那么它并不重要。 @Chris Fulstow:谢谢:) – Ryan 2011-05-22 01:30:27

14

首先,您需要在发布模式下构建应用程序,在Visual Studio中,只需将窗口顶部附近的下拉列表更改为“发布”即可。这将在您的资源所在的位置创建一个bin/Release目录。该文件夹将包含您的应用程序的EXE和您需要包含的DLL。它可能(也可能会)包括一些调试*.PDB文件,你做而不是想包括 - 因为那些包括调试信息。

将该目录的内容复制到某个地方并将其解压。

在x86的模式构建。

如果应用程序使用的第三方的DLL不兼容64位(你只能这样做,如果你有一个具体的理由)

,您可能需要在x86模式下执行发布版本。要做到这一点,请点击“任何CPU”下拉菜单并点击“新建配置”(或类似的东西),然后按照步骤添加x86。然后使用x86-Release设置进行构建。这会将x86二进制文件输出到源文件所在的bin/x86/Release文件夹。

首选Soltuion

大多数用户都喜欢选择某种形式的自动安装程序,而不是一个简单的RAR或ZIP的。 Visual Studio(Standard/Pro)可以创建自我安装的MSI,为您完成所有工作。基本概述是here。您可以使用Visual Studio提供的向导来添加快捷方式/等。

如果你需要一个更强大的安装程序,您可以检查出解决方案,如InnoSetupNSIS

+0

通过使用ClickOnce你实际上会避免DLL地狱。 – 2011-05-22 13:55:46

+11

然后进入ClickOnce地狱...... – 2013-04-16 13:41:37

3

Release模式而不是Debug构建应用程序,转到生成菜单并选择配置管理器。

更改主动解决方案配置Release。现在,当您构建解决方案时,它会将可执行文件放在/bin/Release文件夹中。

如果您需要在构建解决方案时自动执行某些操作,例如将其打包到RAR或ZIP归档文件中,然后将该可分发文件复制到其他文件夹,请查看post-build actions

+0

如果用户覆盖默认输出路径和目标平台,或者在不同开发平台上编译,则指定的路径可能无效并且针对应用程序上的特定版本,例如,defatult输出路径可以以(bin \ x86 \调试,bin \ x64 \ Debug,<自定义用户路径>) – 2011-05-22 14:07:45

+0

@Artur true,但是在这个问题中没有提及多架构构建,所以这不是一个考虑因素。 – 2011-05-23 01:59:35

-1

的Visual Studio 2010之后,微软删除从Visual Studio制作安装实用工具,而且我们必须从

Get InstallShield Limited Edition for Visual Studio

seperatly downlorad该插件,你必须填写申请

完好后,转到 Visual Studio - >新建项目 - >其他项目类型 - >设置和开发

你会看到屏幕follwing

enter image description here

现在,您可以转到的InstallShield安装实用程序和改变的事情,你的要求。

enter image description here

添加在项目的debug文件夹中的所有文件中follwing接口和构建解决方案,

最后的安装将在你的设置folder-->快速查找\ CD_ROM \ DiskImages \ DISK1 * *

希望这将帮助你

+0

您是否认真意味着他应该从调试文件构建解决方案? – 2017-11-27 13:45:11