部署无需安装即可运行的Visual Studio应用程序的最佳方式

Wil*_*son 73 c# deployment clickonce install visual-studio-2012

我用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
Run Code Online (Sandbox Code Playgroud)

以及两个文件夹

app.publish
Resources
Run Code Online (Sandbox Code Playgroud)

Pet*_*sen 96

这是可能的,而且看似简单:

  1. 从菜单Build或项目的属性"发布"应用程序(例如,驱动器C上的某个文件夹)?发布.这将为ClickOnce应用程序创建安装程序.
  2. 但是,不是使用生成的安装程序,而是查找生成的文件(EXE文件和.config,.manifest.application文件以及任何DLL文件等) - 它们都在同一个文件夹中,通常在bin\Debug项目文件(.csproj)下面的文件夹.
  3. 压缩该文件夹(省略任何*.vhost.*文件和app.publish文件夹(不需要它们)和.pdb文件,除非您预见直接在用户系统上进行调试(例如,通过远程控制)),并提供它给用户.

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

至于.NET,您可以检查应用程序中安装(或根本没有)所需的最低.NET版本(大多数用户已经安装了它),并在Microsoft网站上显示一个带有指向下载页面链接的对话框(或指向可以重定向到Microsoft页面的其中一个页面 - 如果Microsoft URL更改,这会使其更加健壮).由于它是一个小实用程序,您可以将.NET 2.0作为目标,以降低用户必须安装.NET的可能性.

有用.我们在开发和测试期间使用此方法,以避免不断地卸载和安装应用程序,并且仍然非常接近最终应用程序的运行方式.

  • 出于好奇,这与直接从\ bin\Release复制文件有什么不同? (40认同)
  • 我还想知道这与直接从\ bin\Release复制文件有什么不同? (10认同)
  • 谢谢,它就像一个魅力!我必须使用项目的发布属性的“应用程序文件...”按钮来强制包含所有引用的 DLL,因为默认情况下不包含所有引用。 (3认同)
  • 这与仅构建项目并从bin文件夹(Debug或Release)获取文件没有什么不同。运行发布向导以创建未使用的安装程序只会使项目再次自行构建,就像单击“构建”一样。一个简短的答案是确保项目已生成,然后转到项目的bin文件夹并将文件复制(或压缩以方便复制)到要从中运行程序的位置。您仍然必须确保在用户计算机上安装了正确的.Net版本。它只需要匹配您的应用程序内置的版本。 (2认同)