测试类不是为x86构建的

时间:2010-10-17 05:53:39

标签: debugging visual-studio-2010 build-process compilation

所以我得到一个异常抛出,我的Test项目无法打开SQLite程序集。但是编译时这是输出:

------ Build started: Project: Budget, Configuration: Debug x86 ------
  Budget -> C:\Users\Scott\Desktop\Development\Budget\Budget\Budget\bin\Debug\Budget.exe
------ Build started: Project: Test, Configuration: Debug Any CPU ------
c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9): warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.Data.SQLite". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
  Test -> C:\Users\Scott\Desktop\Development\Budget\Budget\Test\bin\Debug\Test.dll
========== Build: 2 succeeded or up-to-date, 0 failed, 0 skipped ==========

正如您所看到的,代码项目构建正常(似乎是因为它设置为x86)。我已经将两个项目设置为x86,并保存了两个并重建,但它仍然没有说Test正在为x86构建,因此我们看到了用于测试而不是另一个的程序集警告。我怎样才能为x86构建两者?

-Scott

1 个答案:

答案 0 :(得分:1)

导入在早期版本的VS中创建的项目时会发生这种情况。它将导入配置Debug | AnyCPU和Release | AnyCPU。向解决方案添加新项目会创建其他配置:Debug | x86和Release | x86,VS2010的默认值。现在你有四个。他们试图通过添加另一个集合Debug | Mixed Platforms和Release | Mixed Platforms来找到解决方法。现在你有六个。

哎哟。这有点乱。可能最糟糕的是配置名称与目标平台设置无关。您可以更改它,但配置名称不会更改。这并没有真正考虑到这一点。

使用Build + Configuration Manager修复您的问题。从configuration = Debug,platform = x86开始。注意Platform列,选择具有Any CPU的项目。单击组合框箭头,新建并选择x86。 重要提示:取消选中“创建新的解决方案平台”复选框。勾选“构建”复选框。选择configuration = Release并重复该过程。

这使一切都在正确的位置。您可以通过选择右上角平台组合框中的编辑并使用删除来摆脱bozo平台。哦,在你开始之前做一个备份。

我不认为这实际上会解决您的问题,您应该删除SQLite程序集引用并将其添加回来。

相关问题