c# 写的kinect 程序打包成安装程序后 在其他电脑无法运行

时间:2022-10-07 18:37:29
问题描述:这几天用Xbox360 和 kinect SDK1.8 开发了一个软件,程序里需要用到串口和kinect设备;解决方案里有3个项目,一个是主项目,其他两个相当于是控件;问题出来了,在本机,ANYCPU.DEBUG里直接运行exe能顺利运行,在其他机子就报错,说toolkitcontrol停止运行;然后打包成安装程序后在本机如果不接kinect,界面能出来,但是一接kinect,就同样报错。小弟菜鸟一个,忘大神解救指导。

16 个解决方案

#1


用depends.exe查看exe依赖的dll及其所在目录和版本号。

#2


你是说用这个程序查看ANYCPU.DEBUG的EXE文件,然后把所有的依赖项都复制到ANYCPU.Debug下面吗?小弟第一次打包安装部署,愿大神不吝赐教。

#3


引用 1 楼 zhao4zhong1 的回复:
用depends.exe查看exe依赖的dll及其所在目录和版本号。
你是说用这个程序查看ANYCPU.DEBUG的EXE文件,然后把所有的依赖项都复制到ANYCPU.Debug下面吗?小弟第一次打包安装部署,愿大神不吝赐教。

#4


引用 3 楼 saiyalong 的回复:
Quote: 引用 1 楼 zhao4zhong1 的回复:

用depends.exe查看exe依赖的dll及其所在目录和版本号。
你是说用这个程序查看ANYCPU.DEBUG的EXE文件,然后把所有的依赖项都复制到ANYCPU.Debug下面吗?小弟第一次打包安装部署,愿大神不吝赐教。

Windows系统底层的DLL比如
kernel32.dll
ntdll.dll
user32.dll
gdi32.dll
comctl32.dll
ole32.dll
oleaut32.dll
Secur32.dll
RPCRT4.dll
ADVAPI32.dll

除外。

#5


既然是C#写的,
对应版本的.NET Framework可能也需要事先安装。

#6


引用 5 楼 zhao4zhong1 的回复:
既然是C#写的,
对应版本的.NET Framework可能也需要事先安装。
c# 写的kinect 程序打包成安装程序后 在其他电脑无法运行c# 写的kinect 程序打包成安装程序后 在其他电脑无法运行
这是报错的和我的项目里的工程
部署的时候我只选了下面的两项 c# 写的kinect 程序打包成安装程序后 在其他电脑无法运行c# 写的kinect 程序打包成安装程序后 在其他电脑无法运行

#7


引用 4 楼 zhao4zhong1 的回复:
Quote: 引用 3 楼 saiyalong 的回复:

Quote: 引用 1 楼 zhao4zhong1 的回复:

用depends.exe查看exe依赖的dll及其所在目录和版本号。
你是说用这个程序查看ANYCPU.DEBUG的EXE文件,然后把所有的依赖项都复制到ANYCPU.Debug下面吗?小弟第一次打包安装部署,愿大神不吝赐教。

Windows系统底层的DLL比如
kernel32.dll
ntdll.dll
user32.dll
gdi32.dll
comctl32.dll
ole32.dll
oleaut32.dll
Secur32.dll
RPCRT4.dll
ADVAPI32.dll

除外。
依赖项是指的下面这个图吗?怎么只有一个kernel32.dll?

#8


引用 4 楼 zhao4zhong1 的回复:
Quote: 引用 3 楼 saiyalong 的回复:

Quote: 引用 1 楼 zhao4zhong1 的回复:

用depends.exe查看exe依赖的dll及其所在目录和版本号。
你是说用这个程序查看ANYCPU.DEBUG的EXE文件,然后把所有的依赖项都复制到ANYCPU.Debug下面吗?小弟第一次打包安装部署,愿大神不吝赐教。

Windows系统底层的DLL比如
kernel32.dll
ntdll.dll
user32.dll
gdi32.dll
comctl32.dll
ole32.dll
oleaut32.dll
Secur32.dll
RPCRT4.dll
ADVAPI32.dll

除外。
依赖项是指的下面这个图吗?怎么只有一个kernel32.dll? c# 写的kinect 程序打包成安装程序后 在其他电脑无法运行

#9


目测
Visual C++ 2010 Runtime Libraries (x86)
Microsoft .NET  Freamework 4 (x86 and x64)
应该打勾。
试试看吧。

#10


引用 9 楼 zhao4zhong1 的回复:
目测
Visual C++ 2010 Runtime Libraries (x86)
Microsoft .NET  Freamework 4 (x86 and x64)
应该打勾。
试试看吧。

最简单的办法,你先全都打勾,试试看,如果行,再一项一项地去掉,直到剩下必须打勾的项。

#11


引用 9 楼 zhao4zhong1 的回复:
目测
Visual C++ 2010 Runtime Libraries (x86)
Microsoft .NET  Freamework 4 (x86 and x64)
应该打勾。
试试看吧。
试了,跟原来一样,只要一接kinect程序就闪退,不接的话能进入页面(用的是安装的不是anycpudebug),我用任务管理器看了一下进程的产生和消失,图标是先出现再消失,又出现又消失。我很好奇啊,也很纳闷可能是程序里除了问题?但是编译调试的时候都没问题,所以我比较茫然。但有一点是肯定的,就是用主项目的ANYCPU.DEBUG(未打包的)在本机能正确运行,在其他机子就不行。

#12


生成Release版再试试?

#13


引用 12 楼 zhao4zhong1 的回复:
生成Release版再试试?
不好意思,耽搁你那么长时间,我正在找问题,如果我解决了肯定给你分结贴,目前还在寻找问题。

#14


引用 13 楼 saiyalong 的回复:
Quote: 引用 12 楼 zhao4zhong1 的回复:

生成Release版再试试?
不好意思,耽搁你那么长时间,我正在找问题,如果我解决了肯定给你分结贴,目前还在寻找问题。
不知道和驱动有没有关系?

#15


我也遇到了同样的问题,请问你最后解决了吗?指教啊!

#16


试试
以XP兼容模式运行
以管理员身份运行

#1


用depends.exe查看exe依赖的dll及其所在目录和版本号。

#2


你是说用这个程序查看ANYCPU.DEBUG的EXE文件,然后把所有的依赖项都复制到ANYCPU.Debug下面吗?小弟第一次打包安装部署,愿大神不吝赐教。

#3


引用 1 楼 zhao4zhong1 的回复:
用depends.exe查看exe依赖的dll及其所在目录和版本号。
你是说用这个程序查看ANYCPU.DEBUG的EXE文件,然后把所有的依赖项都复制到ANYCPU.Debug下面吗?小弟第一次打包安装部署,愿大神不吝赐教。

#4


引用 3 楼 saiyalong 的回复:
Quote: 引用 1 楼 zhao4zhong1 的回复:

用depends.exe查看exe依赖的dll及其所在目录和版本号。
你是说用这个程序查看ANYCPU.DEBUG的EXE文件,然后把所有的依赖项都复制到ANYCPU.Debug下面吗?小弟第一次打包安装部署,愿大神不吝赐教。

Windows系统底层的DLL比如
kernel32.dll
ntdll.dll
user32.dll
gdi32.dll
comctl32.dll
ole32.dll
oleaut32.dll
Secur32.dll
RPCRT4.dll
ADVAPI32.dll

除外。

#5


既然是C#写的,
对应版本的.NET Framework可能也需要事先安装。

#6


引用 5 楼 zhao4zhong1 的回复:
既然是C#写的,
对应版本的.NET Framework可能也需要事先安装。
c# 写的kinect 程序打包成安装程序后 在其他电脑无法运行c# 写的kinect 程序打包成安装程序后 在其他电脑无法运行
这是报错的和我的项目里的工程
部署的时候我只选了下面的两项 c# 写的kinect 程序打包成安装程序后 在其他电脑无法运行c# 写的kinect 程序打包成安装程序后 在其他电脑无法运行

#7


引用 4 楼 zhao4zhong1 的回复:
Quote: 引用 3 楼 saiyalong 的回复:

Quote: 引用 1 楼 zhao4zhong1 的回复:

用depends.exe查看exe依赖的dll及其所在目录和版本号。
你是说用这个程序查看ANYCPU.DEBUG的EXE文件,然后把所有的依赖项都复制到ANYCPU.Debug下面吗?小弟第一次打包安装部署,愿大神不吝赐教。

Windows系统底层的DLL比如
kernel32.dll
ntdll.dll
user32.dll
gdi32.dll
comctl32.dll
ole32.dll
oleaut32.dll
Secur32.dll
RPCRT4.dll
ADVAPI32.dll

除外。
依赖项是指的下面这个图吗?怎么只有一个kernel32.dll?

#8


引用 4 楼 zhao4zhong1 的回复:
Quote: 引用 3 楼 saiyalong 的回复:

Quote: 引用 1 楼 zhao4zhong1 的回复:

用depends.exe查看exe依赖的dll及其所在目录和版本号。
你是说用这个程序查看ANYCPU.DEBUG的EXE文件,然后把所有的依赖项都复制到ANYCPU.Debug下面吗?小弟第一次打包安装部署,愿大神不吝赐教。

Windows系统底层的DLL比如
kernel32.dll
ntdll.dll
user32.dll
gdi32.dll
comctl32.dll
ole32.dll
oleaut32.dll
Secur32.dll
RPCRT4.dll
ADVAPI32.dll

除外。
依赖项是指的下面这个图吗?怎么只有一个kernel32.dll? c# 写的kinect 程序打包成安装程序后 在其他电脑无法运行

#9


目测
Visual C++ 2010 Runtime Libraries (x86)
Microsoft .NET  Freamework 4 (x86 and x64)
应该打勾。
试试看吧。

#10


引用 9 楼 zhao4zhong1 的回复:
目测
Visual C++ 2010 Runtime Libraries (x86)
Microsoft .NET  Freamework 4 (x86 and x64)
应该打勾。
试试看吧。

最简单的办法,你先全都打勾,试试看,如果行,再一项一项地去掉,直到剩下必须打勾的项。

#11


引用 9 楼 zhao4zhong1 的回复:
目测
Visual C++ 2010 Runtime Libraries (x86)
Microsoft .NET  Freamework 4 (x86 and x64)
应该打勾。
试试看吧。
试了,跟原来一样,只要一接kinect程序就闪退,不接的话能进入页面(用的是安装的不是anycpudebug),我用任务管理器看了一下进程的产生和消失,图标是先出现再消失,又出现又消失。我很好奇啊,也很纳闷可能是程序里除了问题?但是编译调试的时候都没问题,所以我比较茫然。但有一点是肯定的,就是用主项目的ANYCPU.DEBUG(未打包的)在本机能正确运行,在其他机子就不行。

#12


生成Release版再试试?

#13


引用 12 楼 zhao4zhong1 的回复:
生成Release版再试试?
不好意思,耽搁你那么长时间,我正在找问题,如果我解决了肯定给你分结贴,目前还在寻找问题。

#14


引用 13 楼 saiyalong 的回复:
Quote: 引用 12 楼 zhao4zhong1 的回复:

生成Release版再试试?
不好意思,耽搁你那么长时间,我正在找问题,如果我解决了肯定给你分结贴,目前还在寻找问题。
不知道和驱动有没有关系?

#15


我也遇到了同样的问题,请问你最后解决了吗?指教啊!

#16


试试
以XP兼容模式运行
以管理员身份运行