部署可以运行而不需要安装的Visual Studio应用程序的最佳方法

我用C#/。NET编写了一个相当简单的应用程序,并且找不到一个发布它的好方法。 这是一种“工具”,用户只能运行一次,或者每隔几个月运行一次。 正因为如此,我希望有一种方法可以将其部署到不需要安装的位置(只需在下载后双击EXE文件即可运行)。

但是,它仍然需要(以某种方式)包含.NET,库等的正确版本,因此它将正确运行。 我知道这是包含在使用ClickOnce时,但仍然安装到用户的计算机上的应用程序。

有没有办法可以做到这一点?

编辑 – \ bin \ Debug

myAppName.application myAppName.exe myAppName.exe.config myAppName.exe.manifest myAppName.pdb myAppName.vshost.application myAppName.vshost.exe myAppName.vshost.exe.config myAppName.vshost.exe.manifest extraLibrary.dll 

以及两个文件夹

 app.publish Resources 

这是可能的,看似简单:

  1. “发布”应用程序(例如,驱动器C上的某个文件夹),无论是从菜单Build还是从项目的属性 – >发布。 这将为ClickOnce应用程序创build一个安装程序。
  2. 不是使用生成的安装程序 ,find生成的文件(EXE文件和.config.manifest.application文件,以及任何DLL文件等) – 它们都在同一个文件夹中,通常在bin\Debug文件夹下的项目文件( .csproj )。
  3. 除非您预见到直接在您的用户系统上进行debugging(例如,通过远程控制),否则请将该文件夹(忽略任何* .vhost。*文件和app.publish文件夹(不需要它们)和.pdb文件)并提供给用户。

另一个优点是,作为ClickOnce应用程序,它不需要pipe理权限来运行(如果您的应用程序遵循用于应用程序数据的文件夹的常规准则等)。

至于.NET,您可以检查在应用程序中安装(或根本不需要)最低版本的.NET(大多数用户已经安装了它),并在Microsoft网站上提供一个带有到下载页面链接的对话框(或指向您的网页之一,可以redirect到微软的网页 – 这使得如果微软的URL更改更强大)。 由于它是一个小型的实用程序,您可以将.NET 2.0作为目标,以减less用户必须安装.NET的可能性。

有用。 我们在开发和testing过程中使用这种方法,以避免不断地卸载和安装应用程序,并仍然非常接近最终应用程序的运行。

首先,您需要通过以下方式发布文件:

  1. 通过右键单击解决scheme资源pipe理器中的项目 – 属性 – >在解决scheme资源pipe理器中发布或select项目,然后按Alt + Enter注意:如果您使用的是Visual Studio 2013,那么在属性中必须先进行BUILD,必须禁用定义DEBUG常量并定义TRACE常量,然后就可以开始了。 表示

  2. 将您的文件保存到特定的文件夹。 查找生成的文件(EXE文件,.config,.manifest和.application文件,以及任何DLL文件等) – 它们全部在相同的文件夹中,通常位于项目文件下的bin\Debug文件夹中(.csproj的)。 在Visual Studio中,它们位于“应用程序文件”文件夹中,您只需要.exe和dll文件。 (您必须删除ClickOnce和其他文件,然后将该文件夹设置为zip文件并分发。

注:ClickOnce应用程序确实将该项目安装到系统,但它有一个优点。 您不需要在这里运行pipe理权限(如果您的应用程序遵循用于应用程序数据的文件夹的常规准则等)。