【问题标题】:Visual Studio 2008 doesn't create *.refresh files for external DLL references... what am I missing?Visual Studio 2008 不会为外部 DLL 引用创建 *.refresh 文件......我错过了什么?
【发布时间】:2010-03-24 14:51:20
【问题描述】:

我有一个问题让我很恼火。

我和一位同事正在为我们当前的客户构建一个支持框架,我们希望在其他项目中引用该框架。

我们希望在项目中作为引用的 DLL 将是外部引用。我们通过“添加引用...”添加它,然后浏览到 .dll 的位置。我希望 Visual Studio 只添加 .xml、.pdb 和 .dll.refresh 文件,而是将实际的 .dll(以及 .xml 和 .pdb)复制到 bin 中。

当我们重建框架项目时,使用它的 .dll 的另一个项目会完全失控,直到我们删除并重新添加引用。我在网上读到的所有内容都说 VS2008 应该为您创建 .dll.refresh 文件,但它从来没有。

有什么想法吗?我错过了什么或做错了什么?

此时我已准备好添加一个预构建事件以简单地将框架 .dll 复制到我的 bin 中,但 .refresh 文件似乎不那么麻烦,如果它可以正常工作的话。

谢谢。

更新:

This SO post 描述了刷新文件应该发生的操作。

【问题讨论】:

  • 你能解释一下“失控”是什么意思吗?
  • 当然...重建框架项目后,其他解决方案“吓坏了”。首先,我们得到一个“无法加载引用的库“”:该进程无法访问该文件,因为它正在被另一个进程使用。因此 .dll 存在但未被使用,所以其中引用的所有内容都变为“未声明”。解决方案是打开和关闭 VS(烦人)或删除并重新添加引用(在每个使用它的项目中)(更烦人)。所以也许如果我们解决权限问题?

标签: asp.net visual-studio-2008 dll reference


【解决方案1】:

事实证明,.refresh 文件只为 Web Site 项目创建,而不是 Web 应用程序 项目。

问题源于 Visual Studio 在删除超过 64kb 的 DLL 引用的锁定文件时遇到问题,这个问题应该在 VS 2010 中得到解决。

当前的解决方法是关闭并重新打开解决方案,或者卸载并重新加载包含引用的项目。

【讨论】:

    【解决方案2】:

    如果项目在同一个解决方案中,并且您添加一个“项目参考”应该可以解决您的问题。

    【讨论】:

      【解决方案3】:

      您可以尝试以其他方式添加引用。

      1. 添加参考
      2. 选择标签浏览器(不是标签项目)
      3. 选择您需要的 *.dll

      我试过了,成功了。

      如果您选择选项卡 Project --> 没有添加 *.dll.refresh

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多