VS2015使用C#调用C编写的dll,在其他电脑上无法运行如何解决?

时间:2022-02-11 15:47:47
出现的问题我已经找到了。我编写的DLL文件调用了其他DLL,所以在其他缺少了这些DLL的电脑上使用就出现了问题,不是程序无法运行就是直接关闭了。
已经尝试过的方法但是没有用:
1.release生成dll文件,将项目属性Runtime Lib里把MDd(Multi-threaded Debug DLL)改成MD,但还是会生成引用的DLL。
2.将二级目录的DLL拷贝到目标电脑system32中(三级目录还存在缺少的dll),看下面的图;
3.在目标电脑上控制面板的程序中,安装.NET.Framework 4.5以上的软件。

我的思路与疑问:
1.能否在vs生成dll的时候不需要引用其他dll,我感觉这些dll与我要实现的内容没什么关系呢。
2.难道要将所有缺少的dll都导入目标文件里,这样系统会不会搞坏啊?
3.有其他软件可以直接电脑上修复这份文件缺少的dll吗?(可能我想太多了)


VS2015使用C#调用C编写的dll,在其他电脑上无法运行如何解决?

5 个解决方案

#1


我也遇到过这个问题,你可以试一试 把框架换成.net4.0,然后编译环境X86,

#2


引用 1 楼 qq_27497661 的回复:
我也遇到过这个问题,你可以试一试 把框架换成.net4.0,然后编译环境X86,


可以试试,但是这不是针对解决这个的万能方法,因为这软件得放在不同电脑用 VS2015使用C#调用C编写的dll,在其他电脑上无法运行如何解决?,可能不同电脑就不一样了呢。

#3


顶帖啊,都来说说看

#4


可能是c dll的依赖项缺失
把相应版本的vcredist打包进来,并安装
强调相应版本,是因为不同版本的vcredist差异挺大的。

#5


引用 4 楼 xian_wwq 的回复:
可能是c dll的依赖项缺失
把相应版本的vcredist打包进来,并安装
强调相应版本,是因为不同版本的vcredist差异挺大的。


首先感谢回答。确实是缺少了,我问问题的时候已经提到了。这个软件我会去尝试下。不知道安装后能不能适应所有的电脑。

#1


我也遇到过这个问题,你可以试一试 把框架换成.net4.0,然后编译环境X86,

#2


引用 1 楼 qq_27497661 的回复:
我也遇到过这个问题,你可以试一试 把框架换成.net4.0,然后编译环境X86,


可以试试,但是这不是针对解决这个的万能方法,因为这软件得放在不同电脑用 VS2015使用C#调用C编写的dll,在其他电脑上无法运行如何解决?,可能不同电脑就不一样了呢。

#3


顶帖啊,都来说说看

#4


可能是c dll的依赖项缺失
把相应版本的vcredist打包进来,并安装
强调相应版本,是因为不同版本的vcredist差异挺大的。

#5


引用 4 楼 xian_wwq 的回复:
可能是c dll的依赖项缺失
把相应版本的vcredist打包进来,并安装
强调相应版本,是因为不同版本的vcredist差异挺大的。


首先感谢回答。确实是缺少了,我问问题的时候已经提到了。这个软件我会去尝试下。不知道安装后能不能适应所有的电脑。