【问题标题】:C# Clickonce Application Prerequisites: Any SURE way to determine the list?C# Clickonce 应用程序先决条件:确定列表的任何确定方法?
【发布时间】:2014-07-02 12:59:05
【问题描述】:

并不是说我没有进行任何搜索,但结果总是会让人回到 MSDN 的建议,即如果您使用他们的发布向导并“发布”您的单击一次应用程序,“一切都会得到照顾”。当然,什么都不会被照顾。

我总是这样做:我制作一个基于 CD 的应用程序,将其设置为“创建安装程序以安装必备组件”,这是默认设置。做我的发布。 BAM,几乎 90% 被告知“这是我的第一个测试版本”的人立即回信说“它没有安装”,然后我们查看详细信息,几乎不可能确定到底是什么问题。一旦结果是有人将安装文件放置在目录结构中如此深的目录结构中导致失败,这实际上是通过偶然的网络搜索/幸运地偷看建议评论而发现的。

说真的,开发人员没有铁定的方式可以说“我可以准确地确定先决条件的完整列表;以及此应用程序的最低系统”,这样他们就可以构建他们发布的一次点击应用程序,并且只有一次?

我的倾向是“检查所有先决条件”,然后取消检查它对我抱怨的那些;就像它会说“你不能同时选择 A 和 B,或者 B 包含 A,所以这无关紧要。

很高兴我可以自定义先决条件列表,但因为我不“知道”该列表;我要问的是我如何确定该列表?

【问题讨论】:

    标签: c# prerequisites


    【解决方案1】:

    确定您的先决条件应该相当容易。根据您正在编程的 .net 版本,将告诉您它们应该具有哪个版本作为先决条件(此时很可能是 3.5/4)。任何外部库都需要打包 DLL,因为先决条件向导不会检测到这些 DLL。

    如果您是编写程序的人,那么您的先决条件列表应该相当明显。你使用了哪些库?包括那些没有安装程序的,如果以 CD 形式提供,您还可以在代码中包含您正在使用的版本的 .net 安装程序。

    我已经看到点击一次失败的方式有很多种。一个是嵌套很深,这通常是罕见的。其次是检查网络是否有更新。如果设置为在启动时检查更新,我遇到过无法安装 click-once 的问题,但它无法联系更新服务器。您需要根据您的环境对其进行分类。我还看到了一种情况,一位同事编写了一个根本不会通过单击安装的应用程序,每次都会崩溃。我通过更正一些非常非常糟糕的代码解决了这个问题,但应用程序可以在 ZIP 文件中正常部署。

    最后,您的应用程序是否需要安装程序?它是一个具有许多依赖项和复杂目录结构的大包,还是只是可以从任何目录中愉快地运行的几个文件和文件夹?如果是后者,您最好分发一个 ZIP 文件安装程序并完成它。另外,您是否打算使用单击一次的自动更新功能?这确实是我使用它的唯一原因,如果你不打算利用(或不能)利用它,它就会失去很多吸引力。

    【讨论】:

    • 我曾经提供从编译创建的 EXE,但有时发现它不起作用。所以我说“必须有一种方法来制作一个我可以部署在它工作的地方的应用程序”所以我尝试了这个。类似的银河失败。从历史上看,我不是 MS 开发人员,零培训。我的应用程序是 Windows 窗体,并且全部使用 C# 我完全不知道为什么它认为 VB 是必需的。相信我,如果我能把它拿出来就好了;风险是我们把它交给客户,他们说它不运行。我只是不需要那些随机的背部疼痛。
    • 你说的是 ZIP 安装程序,我去查一下。我假设您的意思不是我压缩我的发布目录并将其发送出去。我没有使用任何库或 DLL,也没有创建任何库。我刚刚制作了一个 Windows 窗体应用程序;从 VStudio 添加了正常可用的小部件并为它编写了我自己的代码,最糟糕的是我有一堆“使用 System.”,因为当你做 IO 或 MS 图表之类的东西时,你需要包含这些语句。
    • 如果您使用严格的 OOTB 东西,只要它们安装了正确的 .net 版本,您应该没问题。拥有一堆 using 语句也是可以的,尽管它可以被视为重构为单独类的标志。通过 ZIP 安装程序,我只是指一个 EXE,其中包含您的应用程序并将其解压缩到用户可选择的目录中。这可能比压缩发布目录更上一层楼,但有时简单更好。如果您遇到这么多麻烦,您可能还想查看日志记录异常。如果您的客户可以向您发送一个 TXT 文件,那么诊断会变得更加容易
    【解决方案2】:

    我找到了这个特殊的解决方案。感谢您的回答,他们很有帮助。

    对于这种情况,Visual Basic PowerPacks 10.0 是先决条件。我不知道为什么这是一个先决条件,因为我没有编写任何 VB 代码。可能是因为我选择了自定义 ICON 图像。我确实尝试将其取出,然后安装了应用程序,但崩溃了。

    该设置已配置为下载所需的任何安装。

    该过程正在发生,但失败了。

    我们从 Microsoft 下载了 VBPP setup.exe,将其包含在发布文件夹中,并告诉那些将要安装的人首先运行该设置,然后为我们的应用程序运行该设置。这使它起作用了。

    在明确 VBPP 安装开始之前,它要求接受 EULA。 “安装”看起来也与我们单独下载并运行 VBPP setup.exe 时不同。

    【讨论】:

    • 很高兴看到你终于把事情搞定了。奇怪的是你需要 VB PowerPacks,你一定在你的应用程序的某个地方引用了一些东西!
    • 现在记住我添加了直线,图形的颜色。不知道该怎么做,最终成为 VB 术语。我应该尝试找出添加行的 C# 方法。它们具有特定的形状并且需要着色,但它们不是激活任何东西的小部件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多