我用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
答案 0 :(得分:93)
这是可能的,并且看似容易:
bin\Debug
文件夹中( .csproj )。app.publish
文件夹(不需要它们)和.pdb文件,除非您预见直接调试用户的系统(例如,通过远程控制)),并将其提供给用户。另一个优点是,作为ClickOnce应用程序,它不需要运行管理权限(如果您的应用程序遵循用于应用程序数据的文件夹的正常准则等)。
对于.NET,您可以检查应用程序中安装(或根本没有)所需的最低.NET版本(大多数用户已安装它)并显示一个对话框,其中包含指向下载页面的链接Microsoft网站(或指向可以重定向到Microsoft页面的其中一个页面 - 如果Microsoft URL更改,这会使其更加健壮)。由于它是一个小实用程序,因此您可以将.NET 2.0作为目标,以降低用户必须安装.NET的可能性。
有效。我们在开发和测试期间使用此方法,以避免不断地卸载和安装应用程序,并且仍然非常接近最终应用程序的运行方式。
答案 1 :(得分:1)
首先,您需要通过以下方式发布文件:
BUILD - > PUBLISH或右键单击解决方案资源管理器上的项目 - >属性 - >在解决方案资源管理器中发布或选择项目,然后按 Alt + 输入 注意:如果您正在使用Visual Studio 2013,那么在属性中您必须转到BUILD,然后您必须禁用define DEBUG常量并定义TRACE常量,您就可以开始了。
将文件保存到特定文件夹。
查找生成的文件(EXE文件和.config,.manifest和.application文件以及任何DLL文件等) - 它们都在同一个文件夹中,通常位于下面的bin\Debug
文件夹中项目文件(.csproj)。
在Visual Studio中,它们位于Application Files文件夹中,您只需要.exe和dll文件。
(您必须删除ClickOnce和其他文件,然后将此文件夹设为zip文件并进行分发。)
注意:ClickOnce应用程序确实将项目安装到系统,但它有一个优点。您不需要在此处运行管理权限(如果您的应用程序遵循用于应用程序数据的文件夹的正常准则等)。