运行带有构建错误的程序

本文关键字:程序 错误 构建 行带 运行 | 更新日期: 2023-09-27 18:16:59

这个问题可能有点奇怪,但我希望我的程序运行时出现构建错误。我正在使用windows窗体(c#),在初始化主窗体之前,程序检查我是否安装了adobereader。这是必要的,因为某些表单被设计为使用Adobe的COM扩展。

所以我希望我的程序在启动时检查是否安装了adobereader,如果安装了,继续,如果没有,执行提供的adobereader安装程序。我的问题是,如果没有安装adobereader,程序甚至不会执行,因此它甚至无法检查安装情况,因为它无法识别代码的某些部分。

我是否必须使用另一个程序,如果安装了Adobe,它就会执行主程序,或者是否有一个解决方案,这样我就可以只使用主应用程序?

运行带有构建错误的程序

您应该考虑使用某种启动器或安装程序,在启动程序之前检查所有请求的先决条件。

我建议您添加另一个应用程序来检查adobe安装,并在验证/安装完成后启动您自己的应用程序。

这个"解决方案"有两个部分:

我解决这个问题的方式(这样它至少会构建)是包括引用的DLL/COM对象的(在引用上,选择"复制到本地"并将其设置为true)。将它们解压缩到一个文件夹中,当应用程序出现错误时,应该允许您至少进行构建,因为引用是可用的。我看到这个非常成功地用对付COM对象。

假设您在解决方案的基本目录中有一个"Common Libraries"文件夹,那么在您在一台机器上构建应用程序后,您将导航到bin目录,其中包含所需的所有内容(用于Adobe的COM对象)。然后将相应的Adobe DLL从该文件夹复制到公共库中,删除对Adobe COM的引用,然后重新添加指向"公共库"文件夹中的DLL的指针。您可能不得不选择不将类型嵌入到应用程序中(也是Reference属性的一部分)。

第二部分是检查应用程序并确定其状态。我想,即使试图在没有应用程序的情况下使用COM对象,也应该抛出某种错误——我看到人们使用try-catch块来"修复"这个问题。这不是一个很好的编程实践,所以您可以做的任何事情都可以扫描它,但是为了快速和简单,try-catch通常是有效的。