【问题标题】:Visual Studio C# .dll vs. project referencingVisual Studio C# .dll 与项目引用
【发布时间】:2016-02-25 01:52:35
【问题描述】:

我的 Visual Studio 解决方案中有两个 C# 项目。项目 B 需要引用项目 A 中的代码。两个项目都需要编译为 dll,然后在应用程序中使用。

在项目 B 中,我可以设置对项目 A 的引用并允许编译。但是当我在我的应用程序中实际使用生成的 dll 时,它会引发缺少程序集引用错误。

我当前的解决方案是告诉项目 B 引用 bin/debug/ProjectA.dll。使用此配置运行应用程序时一切正常。但是这个解决方案有很多问题。例如,在项目 A 中编写的 B 所依赖的任何代码对 B 来说都是不可见的,直到 A 被重建。构建解决方案依赖于首先构建 A。

有没有一种方法可以添加对项目 A 的引用但生成生成的 dll,以便它查找 ProjectA.dll 引用而不是项目本身?我希望有,但我的谷歌搜索没有得到任何答案。

【问题讨论】:

  • 你能发布错误吗?还可以尝试重建项目,然后在 bin 文件夹中运行(我假设).exe 文件。如果它运行没有问题,那么你在文件夹之外运行它的位置有问题,如果在 bin 文件夹中运行它时出现异常,那么我真的需要查看异常,可能还有一些源代码来回答更多完全
  • 在项目 B 中右键单击项目 A 引用并输入 "Copy Local" = True
  • 所以这个问题似乎已经解决了它的自我。在我不上班之前这是个问题。然后当我回来时,它不再发生了。我不知道为什么。发生这种情况时如何处理帖子?

标签: c# visual-studio


【解决方案1】:

例如,在项目 A 中编写的 B 所依赖的任何代码对于 B 来说都是不可见的,直到 A 被重建。构建解决方案依赖于首先构建 A。

这不是问题,在我看来,这是一个好处。因为您保证无法访问不存在的功能。对于新功能,有人可能会说,这没什么大不了的:我找不到它,出现异常/错误,所以我知道出了点问题。但是更新代码呢?这样可以保证B 将只使用最新版本的A

有没有一种方法可以添加对 ProjectA 的引用,但生成的 dll 会生成以便查找 ProjectA.dll 引用而不是项目本身?

您可以简单地在您的项目A 上实现构建后事件,它将它和所有依赖的DLL 复制到某个预定义的中心位置,B.dll 也将被复制。如果您的B.dll 依赖于A.dll,则操作系统将遵循默认行为,首先在B.dll 所在的同一文件夹中搜索A.dll,然后再检查%PATH% 变量内容。

【讨论】:

    猜你喜欢
    • 2010-12-21
    • 2021-05-12
    • 2020-10-03
    • 2021-12-06
    • 2010-12-15
    • 1970-01-01
    • 2012-10-16
    • 2016-10-15
    • 1970-01-01
    相关资源
    最近更新 更多