gpt4 book ai didi

.net - 我应该如何确定哪些引用必须是 "copied locally"?

转载 作者:行者123 更新时间:2023-12-01 05:34:29 29 4
gpt4 key购买 nike

许多类似的帖子,但我相信这不是重复的。当我在 Visual Studio 中添加引用时,有些 dll 会在本地复制,而有些则不会。

我知道我从其他地方获得的外部 dll 应该有一个本地引用,但是我想我从 Visual Studio 的一长串引用(.NET 和 COM)中选择的那些不需要在本地复制。我不。

现在我注意到当我从 COM 中选择 Shell32 时,dll 被复制到本地。默认情况下,“复制本地”设置为 true。所以我假设 .NET 是不需要本地引用的,而 COM 应该有。但是当我引用 Office Interop 对象 (COM) 时,我发现它们没有在本地复制。

  • 为什么有些是本地复制的,有些则不是。 (想知道一些好东西)
  • 另外,我应该如何为引用设置“复制本地”属性?是否建议仅按照 Visual Studio 默认执行的操作?

  • 谢谢。

    最佳答案

    默认情况下,VS 出错的几率非常小。您的开发机器(通常)与您的用户机器没有什么不同,重要的是您的 GAC 中的内容。您将像用户一样安装 .NET,因此框架程序集在您的 GAC 以及用户的 GAC 中,因此不要在本地复制。任何 3rd 方 .NET 程序集都会在本地复制,包括您自己的。

    唯一的极端情况是 COM pias,即主要互操作程序集。您的开发机器上往往安装了一些,Office 和 Internet Explorer pias 相当普遍。除非有人负责安装它们,否则它们将无法在用户的机器上使用。您实际上并不经常需要 pia,只有在您自己的程序集从它们公开类型时才需要它们。只需将复制本地翻转为真。这是一个迅速消失的问题,VS2010 构建的项目支持嵌入互操作类型功能,也称为“no-pia”好东西。

    最后但并非最不重要的一点是,您始终需要测试安装程序。万一您错过了某些东西,该测试将迅速将其清除。

    关于.net - 我应该如何确定哪些引用必须是 "copied locally"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9491611/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com