【发布时间】:2011-09-16 14:44:13
【问题描述】:
将新项目添加到大型解决方案后,我收到错误,表明构建不正确。我一直依靠 Visual Studio 来实现它,我将不胜感激。
下面是来自配置管理器的图片。最后的项目(Parties.Presentation.Wpf)依赖于名为“Core.Presentation.Wpf”的程序集,如下代码所示:
using Smack.Core.Presentation.Wpf.Services;
using Smack.Parties.Presentation.ViewModels.PimVms;
namespace Smack.Parties.Presentation.Wpf.ApplicationControl
{
public class PimVisualizerService : WpfUiVisualizerService
{
public PimVisualizerService(WpfTypeRegistrationService registrationServiceService)
: base(registrationServiceService) { _registrationService.Register<PimShellVm>("blah"); }
}
}
不确定是否全部为 R#,但在我尝试构建之前,没有显示错误,我可以导航到 Core 程序集中的基类。
但我无法构建它,并且出现此错误:
Error 1 The type or namespace name 'Core' does not exist in the namespace 'Smack' (are you missing an assembly reference?)
C:\Users\L&M\Documents\Projects\Smack\trunk\src\Parties.Presentation.Wpf\ApplicationControl\PimVisualizerService.cs 1 13
Parties.Presentation.Wpf
这是一个构建依赖问题吗?我该如何解决?
干杯,
浆果
更新
好的,根据 the last answer to this question,从“MixedPlatforms”更改为“AnyCPU”让我可以再次构建。
我会暂时搁置一下,看看有没有比我有更多构建经验的人说这是一个 hack 或正确的做法。我很好奇为什么 WPF 项目一开始就默认使用 x86。
【问题讨论】:
-
您可能知道您可以控制解决方案中项目的构建顺序?您可以尝试强制在“Parties.Presentation.Wpf”之前构建“Core.Presentation.Wpf”
-
如果我混入了 F# 项目,有时我会遇到可怕的问题。但首先构建这些,然后构建完整的解决方案,甚至多次构建解决方案,到目前为止都为我解决了这个问题。
-
@Berryl - 如果您有实际(非偶然)x86 依赖项并尝试在 x64 上运行它,则构建“任何 CPU”会中断。它可能默认为“x86”,因为那是/是最常见的平台目标。
-
@Ritch Melton。同意 AnyCPU 是一个脆弱的解决方案 - 假设 x86 是一个真正的依赖项,对于如何更可靠地解决这个问题,是否有一个简单的答案?为什么不把它作为一个答案,这样我就可以关闭它并同时学习一些东西!干杯
标签: visual-studio-2010 msbuild build