代码之家  ›  专栏  ›  技术社区  ›  Shantanu Gupta

创建可以在不安装的情况下运行的桌面(窗口)应用程序?

  •  6
  • Shantanu Gupta  · 技术社区  · 16 年前

    我想在C中创建一个基于窗口的应用程序,这样我们就可以在不将应用程序安装到每个系统中的情况下运行它。 它还需要通过数据库连接该应用程序。

    我想创建这个应用程序,这样它就可以直接通过PenDrive运行,也可以写入数据库。

    我知道如何通过窗口应用程序使用数据库,但只使用安装程序。

    我创建了许多窗口应用程序 但是之后所有的都在客户机上运行 安装已部署的安装程序。但是现在 我要客户端不需要安装 安装程序已部署。他可以用我的 直接单击我的 可执行文件

    4 回复  |  直到 15 年前
        1
  •  13
  •   Will Eddins ianpoley    16 年前

    Windows中没有需要安装应用程序的内容。也就是说,安装的目的是:

    • 使最终用户的操作更加简单。
    • 设置注册表,通常用于路径信息和卸载信息。
    • 初始化软件首次运行前可能需要的任何初始信息。

    简单地避免使用注册表并将文件本地保存到应用程序中,通常足以使应用程序可移植。

    也就是说,只要您允许用户在您的软件中选择一个数据库位置,您就可以了。例如,在.ini文件中保存笔驱动器上的信息将允许您插入的每台计算机读取这些相同的设置。

    如果希望每台计算机都有一个到数据库的不同连接字符串,则可以将设置保存到 %appdata% 目录。当用户稍后插入PenDrive时,他的设置仍将存在,其他用户将看不到这些相同的设置。

    但是,第二种方法的缺点是,用户无法“卸载”和恢复写入的空间 %AppDATA % 自动地。然而,对于大多数私营企业应用程序来说,这并不是什么大问题。


    编辑 :如果您的真正问题是如何分发应用程序 没有安装程序 ,只需构建应用程序的发布版本,并查看 /bin/Release/ 在你的项目中。将这些文件复制到另一个位置,删除任何调试或不需要的文件,并确保您的所有依赖项都井然有序。

        2
  •  0
  •   Robert Harvey    16 年前

    如果您只想连接到一个数据库,您可以在exe中进行连接,而不需要任何类型的安装程序。如何做到这一点取决于它是哪个数据库,以及您如何连接到它,但通常需要在exe(或在exe可以读取的外部XML文件)中编码的项是 连接字符串 .此连接字符串可能是安装程序正在管理的。

    关于在C中构建第一个Windows应用程序的一个很好的教程可以在这里找到: http://msdn.microsoft.com/en-us/library/360kwx3z.aspx

        3
  •  0
  •   Lukas Å alkauskas    16 年前

    如果您不知道在哪里以及如何启动窗口窗体应用程序,或者如何连接到数据库,那么有很多教程,您可以很容易地通过谷歌进行搜索;)

    以下是几个例子:

    图形用户界面相关:

    Tutorial: Working with Windows Forms - Part I

    GUI Windows Forms « C# / CSharp Tutorial

    Windows Forms tutorial with C#

    数据库相关:

    Creating a database connection

        4
  •  0
  •   Kamran Khan    16 年前

    最简单的安装形式;使用if/else;当应用程序启动时,它将检查一些注册表项(例如,installation=done),如果registery key的值为“done”,则运行else部分,这意味着运行应用程序。如果“未完成”,则设置所有初始设置,然后运行应用程序。伪代码如下:

    if(HasValidRegistryKeys()) //Check if initial settings are already there
    {
        Runnable=true;
    }
    else
    {
    //Not installed, lets setup app settings
    //Assume that the application is running for the first time.
    try
    {
        SetupRegistry(); //Set installation=done
        SetupDatabase();
        //Setup more things.
        Runnable=true;
    }
    catch()
    {Runnable=false;}
    
    }
    
    //Run the app
    if(Runnable)
    {
        RunApp();
    }
    else
    {
        MessageBox.Show("Some error");
    }
    
    推荐文章