【问题标题】:Weird Visual Studio 2010 Behavior - not copying dlls to bin奇怪的 Visual Studio 2010 行为 - 不将 dll 复制到 bin
【发布时间】:2012-06-06 19:43:54
【问题描述】:

我希望其他人也遇到过这种情况,因为它让我发疯。

我最近买了一台新笔记本电脑,所以我一直在设置我的 Visual Studio 解决方案(带有 .NET 4.0 的 VS2010),这是我从旧机器上保存下来的。其中之一是一个简单的控制台应用程序,我用它来模拟一些用于测试的东西。它引用了我现在正在研究的另一个解决方案中的 2 个程序集。这过去一切正常,但自从搬到新机器后,我得到了可怕的“找不到类型或命名空间名称'YourAssembly'(您是否缺少 using 指令或程序集引用?”错误消息。引用清楚地显示在 Visual Studio 中,但是当项目构建时,它不会将它们复制到解释消息的 bin 目录中。最初我只是像任何第 3 方 dll 一样引用 dll,但我什至尝试删除它并包括我的解决方案中的项目文件并以这种方式引用它们,但仍然失败。我已经验证了 dll 的“复制本地”属性设置为 true,并且确实如此。这真的很奇怪,因为该项目引用了其他几个只是3rd 方程序集(例如 NLog、GData 等)和那些都可以很好地复制,但出于某种奇怪的原因,这两个程序集不是。

这里还有一件奇怪的事。如果我向控制台应用程序添加一些引用我的程序集的代码,它会说它找不到它。如果我然后将程序集重新添加到引用中,错误就会消失,直到我尝试再次构建它然后它返回。这是VS错误还是什么?我以前从未见过这种奇怪的行为。

谢谢

【问题讨论】:

  • 就是这样,谢谢汉斯...为什么他们将目标命名空间默认为 v4 客户端配置文件我不知道,但我以前从未遇到过这个问题
  • 您似乎在评论中回答说,客户资料通常足够好。

标签: visual-studio-2010 visual-studio


【解决方案1】:

我看到的一个导致您所说的问题的案例:

包括对内部构建的 dll 的引用,链接到特定版本的 dll。获取 dll 的新副本(具有不同的版本号)并且构建中断。

在这种情况下的解决方案是将 DLL 引用属性Specific Version 设置为 false。 dll 的版本被忽略(在我的情况下,忽略它是安全的),并且构建工作正常。

【讨论】:

    【解决方案2】:
    1. 我也遇到过类似这样的奇怪错误,即使用旧登录名在旧文件上设置了 NTFS 权限,但新机器不喜欢旧权限。
    2. 此外,有时旧的 .sln 或 .csproj 文件指的是一个奇怪的文件路径,您似乎无法在 VStudio 中对其进行编辑。尝试使用记事本打开这些文件并确保路径没有损坏。您通常可以使用固定路径进行编辑和保存,然后一切都会恢复正常。

    【讨论】:

      【解决方案3】:

      Hans 有上面的答案,但我无法通过搜索找到该帖子,因此希望如果您偶然发现这个问题,我可以为您节省几个小时的挫败感。

      由于某些奇怪的原因,“目标框架”在项目属性中默认为“.NET Framework 4 - 客户端配置文件”。我仔细检查过,每当我创建一个新的控制台应用程序时,它似乎都会这样做。应该是VS中的版本相关的东西,因为我在2010年之前没有遇到过这个问题。

      修复:

      1. 右键单击您的项目,选择属性
      2. 在主应用程序选项卡下,将目标框架设置为您选择的框架,但不是“客户端配置文件”选项之一
      3. 正常保存和构建

      【讨论】:

        猜你喜欢
        • 2012-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-22
        • 2011-04-11
        • 2012-03-20
        • 1970-01-01
        相关资源
        最近更新 更多