【问题标题】:Visual Studio fails to load referenced project bin output properly (path bug?)Visual Studio 无法正确加载引用的项目 bin 输出(路径错误?)
【发布时间】:2012-08-23 00:15:08
【问题描述】:

Visual Studio 无法构建解决方案“S1”并显示以下错误消息:

错误 8:引用的程序集“D:\S0\foo\bin\Debug\foo.dll”不是 成立。如果此程序集是由您的另一个项目生成的, 请确保在构建此项目之前构建该项目。

引用的 foo 项目实际上最初是不同解决方案的一部分(在错误消息中称为 S0),并通过“添加现有项目”包含在内。

但是,Foo 确实在 S0 中构建良好,并且它的 bin 输出存在。由于 S0 和 S1 都专门为 x86 构建,因此正确的路径应该是“S0\foo\bin\x86\Debug\foo.dll”,因此 Visual Studio 似乎不会查找二进制文件在正确的地方。

Foo 确实在 S1 中显示了缺失的引用,这可能是由于它引用了 S0 中未包含在 S1 中的其他项目。不过这应该不是问题,因为所需的二进制文件已经存在。

我手动将文件从“bin\x86\Debug”复制到“bin\Debug”,虽然没有删除有关缺少引用的警告,但这实际上使 VS 构建 S1 很好,所以显然 Visual Studio 实际上被“不寻常的" 'bin\x86\debug' 路径。

我应该如何解决这个问题?

【问题讨论】:

    标签: .net visual-studio-2010 build output


    【解决方案1】:

    您的构建输出位置是可自定义的。如果项目存在其他平台配置,我相信标准 VS 行为是创建 x86 文件夹。

    这不是 Visual Studio 错误;听起来(尽管该项目在解决方案中)您有一个使用不正确路径创建的二进制引用。

    【讨论】:

      【解决方案2】:

      现在我正在使用一种解决方法。通过手动将 S0 中的输出路径更改为“通常”(bin\Debug),x86 bin 文件被放置在 VS 正在查找的位置,随后允许构建 S1。不过,这似乎偏离了最佳实践,因此我不认为这是一个长期的解决方案。

      在我看来,缺少在 x86 子文件夹中搜索 bin 文件是 Visual Studio 中的一个干净错误,因为 S0 和 S1 都是专门为 x86 构建的。

      【讨论】:

      • 您的构建输出位置是可自定义的。我相信标准的 VS 行为是创建 x86 文件夹 if 项目存在其他平台配置。这不是 Visual Studio 错误。听起来(尽管该项目在解决方案中)您有一个使用不正确路径创建的 binary 引用。
      • @DanPuzey:如果存在其他配置部分听起来像是对问题根源的一个很好的解释(贴出来!)。这些项目已经从 AnyCPU 转换为 x86 不久前,所以这可能是一个遗留物。
      • @DanPuzey:关于二进制文件的引用,我手动检查了所有引用,它们指向项目文件而不是二进制文件。
      【解决方案3】:

      我是这样解决的。删除给出错误的项目并再次添加它们并构建它。

      【讨论】:

        猜你喜欢
        • 2016-07-10
        • 1970-01-01
        • 2018-12-03
        • 2021-12-30
        • 2020-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-24
        相关资源
        最近更新 更多