【问题标题】:How do C#/.NET assembly references get disconnected?C#/.NET 程序集引用如何断开连接?
【发布时间】:2017-06-02 01:11:56
【问题描述】:

Is this possibly an ORM thing? A Dapper Thing? Or a general .NET Framework thing?

先说:我来自开源、更现代的语言,如 Ruby 和 Javascript。我最近开始了一份工作,我第一次在 Windows 上进行开发,使用 Visual Studio IDE,并习惯于编译代码和解释代码。如果这是一个愚蠢的问题,我很抱歉,但谷歌提出了非常空的问题。

我已经获得了大量关于如何处理装配问题和参考的结果,这些结果基本上直截了当并告诉您如何重新连接它们。我想知道的是:

为什么他们首先会建立联系?这是如何发生的,在哪里发生?我无法想象作为开发人员需要操纵它们或更改文件路径。是什么原因?

非常感谢任何帮助。我想疯了!

【问题讨论】:

  • C# 比 Ruby 和 JS 更新。另外,check this post out
  • 要了解更多信息,您可以右键单击参考并转到“属性”并查看文件路径;如果它在visual studio“packages”目录中,那么我认为这意味着它是使用nuget之类的东西添加的。如果您右键单击并转到“添加引用”并指向一个 DLL,则文件路径将位于 dll 而不是包。

标签: c# asp.net .net dependencies .net-assembly


【解决方案1】:
WHY would they get connected in the first place? 

这些引用是程序需要的依赖项。它们的工作方式类似于在您的前端 Web 项目中拥有不同的 JavaScript 库。

How, and where does that happen?

.csproj 文件是一个.xml 文件,用于跟踪所有信息以及应用程序的编译方式。链接发生在编译时。一切都将作为.dll 存在于/bin 文件夹中。

I can't imagine as a developer having a need to manipulate them or change the filepath. What is the causation?

您不应该正常地在运行中操纵这些。一切都应该存在于/bin 文件夹下

正如我在 cmets 中指出的,请查看 this post。他们在谈论一种引用类型。

【讨论】:

  • 这个问题的背景是我没有改变它们,正如你所说,如果我没看错的话,其他人不太可能在胡闹,但我遇到了需要重新添加它们。问题的症结在于我没有调整参考,什么沉淀需要重新添加?
  • 这似乎是一个非常具体的问题。为什么需要重新添加它们?是什么删除了这些引用,所以您需要这样做?
  • 这是我问题的症结所在。比如,我知道我没有惹到他们,而且我想不出其他人可能有任何可以想象的理由。那么,它是如何导致它们断开连接的状态的呢?
【解决方案2】:

当代码需要指定的 DLL 代码时发生加载。 为什么要指定 DLL 路径? 例如。在进程中处理 DLL 版本/清理内存 可以卸载,但不推荐。

https://blogs.msdn.microsoft.com/jasonz/2004/05/31/why-isnt-there-an-assembly-unload-method/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    相关资源
    最近更新 更多