在 Visual Studio 2012 中发布 C# winform 应用程序

Posted

技术标签:

【中文标题】在 Visual Studio 2012 中发布 C# winform 应用程序【英文标题】:publishing a C# winform application in Visual Studio 2012 【发布时间】:2014-05-25 14:25:12 【问题描述】:

我在 Visual Studio 2012 中构建了一个 C# winform 应用程序。我想将该应用程序发布到全世界。

    通过 Visual Studio 发布与将“发布”文件夹提供给某人有什么区别?

    我宁愿提供“发布”文件夹,因为如果有框架,用户就没有安装。但是用户可以看到所有的数据库文件。有没有办法隐藏它们并将发布文件夹作为单个“.exe”文件,用户看不到它的数据库?

【问题讨论】:

查看此链接msdn.microsoft.com/en-us/library/ms953320.aspx 【参考方案1】:

    在 VS 中发布项目时,会创建一个 ClickOnce 包。当您使用 Release 构建配置构建项目时,您拥有与使用 Debug 配置构建的相同的可执行文件,但调试配置针对调试进行了优化。如果您想将应用程序提供给用户,您应该使用 Release config 构建它。 [What is ClickOnce]

    您可以为您的应用使用安装程序。这是一个很好的做法。如果您愿意,您可以编写脚本,例如在桌面上创建快捷方式或在 Windows 注册表中写入 smt 等。关于免费安装程序,您可以阅读 here。我的选择是InnoSetup - 开源且易于使用。

【讨论】:

谢谢。很好的答案。它会隐藏数据库文件和其他东西吗? (意味着它对用户可读) 谢谢!当然,它对用户来说是可读的,因为 db 文件(SQL CE 或类似文件)应该存储在程序文件夹中,但是没有特殊知识的典型用户不知道如何打开 DB 和读取数据。如果您想要更高的安全性,您还可以通过密码加密您的数据库。【参考方案2】:

当您提供发布文件夹时,您实际上是在提供可执行文件,只需单击可执行文件(如果已安装框架)即可工作。

如果您使用 clickonce 发布应用程序,则必须先安装(基于桌面)才能执行。

我一直在使用 installshield 来准备安装程序,它还负责包含所有必需的库。

【讨论】:

以上是关于在 Visual Studio 2012 中发布 C# winform 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2012 仅发布错误

在 Visual Studio 2012 中发布 C# winform 应用程序

在 Visual Studio 2012 中编译 Firefox 插件 [重复]

visual studio 2012中如何查看一个工程需要哪些dll文件???

在 Visual Studio 2010 和 Visual Studio 2012 中,带有 col、colgroup、tbody 和 thead 的 HTML 表格标记引发编译错误

在 Visual Studio 2012 / 2013 中使用 SSIS BIDS