cccc 发表于 2024-8-20 10:13:56

spread windows forms 14关于spread和gcexcel的dll引用文件指定位置的发布.

您好,我做了个测试工程,我希望发布时,引用的dll不和编译的exe文件在同一个文件夹,而放到exe文件所在的目录下新建的文件夹dll2下。                                       1、首先把工程引用的spread和gcexe相关的dll的复制本地属性设置为True。如图:


2、在工程后台代码窗体的初始化过程里增加设置引用的spread和gcexcel的dll文件到指定的位置。如图:                                       3、我在工程的Release目录下手动新建了dll2文件夹,并把引用的spread和gcexcel的所有dll文件拷贝到dll2文件夹里。如图:
4、编译后,我把Release文件夹拷到开发机的其他目录里,运行OK。
5、我再把Release文件夹拷到其他电脑上,运行EXE文件,无法打开,没有任何反应。
为啥拷贝到其他电脑,就无法运行呢?什么原因,如何解决,我想实现spread和gcexcel引用的dll文件跟exe文件不在一起。请大师指点。

Richard.Ma 发表于 2024-8-20 16:27:35

理论上来说应该不会有你提到的问题,我建议你可以查一下出现问题电脑上的“事件管理器”,上面应该会有程序运行报错的日志信息。看看其中的报错内容再说



cccc 发表于 2024-8-21 10:41:28


查看了下事件管理器,有错误信息报告。您帮我分析,从异常信息那里好像是说文件没找到。

cccc 发表于 2024-8-21 10:50:40



详细信息

cccc 发表于 2024-8-21 10:51:37

Richard.Ma 发表于 2024-8-20 16:27
理论上来说应该不会有你提到的问题,我建议你可以查一下出现问题电脑上的“事件管理器”,上面应该会有程序 ...

事件管理器查到的错误详细信息,帮我分析下,谢谢。

Richard.Ma 发表于 2024-8-21 12:21:25


说实话dll放到不同位置这块我也不是很清楚,得你自己调查了,我只能帮你想一下大概的思路

从报错信息来看,你应该关注这两个信息,看起来更像是应用本身的报错


另外,你可以尝试给这边的事件方法加上try catch看看能否得到报错信息

cccc 发表于 2024-8-21 17:52:55

Richard.Ma 发表于 2024-8-21 12:21
说实话dll放到不同位置这块我也不是很清楚,得你自己调查了,我只能帮你想一下大概的思路

从报错信息 ...

嗯,我做了不用spread的测试,这方法是可以的。为啥加了spread引用文件就只能在服务器上可以,放到其他电脑运行就不行。

Richard.Ma 发表于 2024-8-21 18:27:12

猜测可能和授权有关系。这个具体你得看一下我上面提到的报错信息,可能能找到



或这个你给一个复现问题的简单demo也行,我在这边测试一下看看

cccc 发表于 2024-8-26 12:03:54

您好,我做了个简单测试工程,您帮我看下为啥spread的依赖文件指定位置就不能运行工程exe文件。谢谢

Richard.Ma 发表于 2024-8-26 17:12:19

本帖最后由 Richard.Ma 于 2024-8-26 17:13 编辑

你发过来的工程,我测试了一下没法运行,稍微修改了一点内容


测试下来,在其他的机器上运行也是没有问题的,附上修改后的demo,以及最终编译的结果








页: [1] 2
查看完整版本: spread windows forms 14关于spread和gcexcel的dll引用文件指定位置的发布.