刘可可丶 2023-01-10 14:22 采纳率: 50%
浏览 139
已结题

Visual Studio 2019 引用问题

问题遇到的现象和发生背景

Visual Studio中dll文件引用问题:引用路径不一致、相同dll有一个无法被引用

遇到的现象和发生背景

用向日葵传了一个工程到电脑上,结果发现引用出现问题,引用的文件有黄色叹号:第一个问题是显示引用已存在,但是代码并没有报错,经过调试发现需要引用的是另一个dll;第二个问题是在工程中的两个项目下分别引用了相同的dll,但是其中一个dll无法被解析,对应项目中的代码报错。

报错代码的引用代码
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Emgu.CV;
using Emgu.CV.Structure;
using Sentech.GenApiDotNET;
using Sentech.StApiDotNET;

运行结果及详细报错内容

img

第二个问题中的报错信息

我的解答思路和尝试过的方法

第一个问题,后来查阅了相关文档,发现要引用的不是同一个文件,需要引用的文件为

ihttps://img-mid.csdnimg.cn/release/static/image/mid/ask/756950133376132.png

但是引用后对应的路径是另一个文件,请问这是什么原因?

img

第二个问题,由于两个项目中引用的是相同的dll,我将没有出现问题的dll复制到了出问题的目录下,问题得到了解决

我想要达到的结果

第一个问题中为何引用的dll和显示路径中的dll不是同一个文件?
第二个问题中为何明明是相同的dll在一个项目中可用另一个项目中不可用?是不是传输的时候出现了问题?但是我传输了多次,都是这一个文件出现了问题。
希望能人志士不吝赐教!

  • 写回答

10条回答 默认 最新

  • |__WhoAmI__| 2023-01-10 14:40
    关注

    1、
    其中一种可能的原因是,这个dll文件在项目中被更新或者替换过,而项目中引用的路径没有被更新,导致项目中引用的是旧版本的dll文件。这种情况下需要在项目属性中手动更新引用的dll文件路径。

    另外如果在项目中添加了新的dll文件引用,而没有将旧的dll文件删除,就会导致项目中出现多个版本的dll文件,从而导致项目中引用的是旧版本的dll文件。

    更进一步,也有可能因为传输项目文件时,只传了源代码,而没有传dll文件导致项目引用的是找不到路径的dll文件.

    2、
    如果两个项目中引用的是相同的dll文件,但是其中一个无法被解析,可能是因为这个dll文件在不同的项目中的环境不同,导致其中一个项目无法正确加载这个dll。

    许多dll文件都是需要特定的运行库环境,如.net framework version, c++ runtime版本等,所以在某些情况下,即使两个项目使用相同的dll文件,但由于它们使用的运行环境不同,可能会导致一个项目能正常运行,而另一个项目会出现问题.

    如果是这种情况,可以试试在每个项目中重新配置相同的运行环境.

    一般来说,如果使用同一版本的Visual Studio在同一台电脑上打开项目,DLL路径问题应该不会出现。
    仅供参考,望采纳,谢谢。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(9条)

报告相同问题?

问题事件

  • 系统已结题 1月25日
  • 已采纳回答 1月17日
  • 赞助了问题酬金20元 1月10日
  • 创建了问题 1月10日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效