混合"WPF项目中不支持窗口"

And*_*ent 15 64-bit xaml visual-studio-2008 32bit-64bit expression-blend

我正在使用Blend报告"Windows Presentation Foundation(WPF)项目不支持窗口",这令人沮丧.由于无法构建的配置,但无法解决如何破坏我的方式.

我已经解决了这可能是因为我尝试使用x86和x64配置的单一解决方案.没有办法告诉Blend 2哪个是活动的解决方案配置和活动的解决方案平台.

我认为这是配置系统中的一个弱点,或者可能是我设置的方式,但我有Debug64和Debug 解决方案配置,其中一个与平台 x86和x64一起使用.

我也认为这是一个简单的排序问题 - x64出现在x86之前,Debug出现在Debug64之前,所以Blend最终得到了一个不可构建的Debug with x64配置.

当我在VS中选择Debug和x64的组合时,它的XAML编辑器也无法加载.

解决方案是一个中等复杂的解决方案 - 有一个纯Win32 DLL,C++/CLI模型项目和主WPF项目使用的另外两个WPF程序集.

更新我已经从我的解决方案中删除了所有x64配置并重建了所有内容而没有任何效果.

然后我卸载了Blend 2并安装了Blend 3 - 它也不喜欢它.

Visual Studio XAML编辑器仍然非常高兴,程序构建和运行也是如此.

(来自oz的窒息尖叫声)

Dan*_*rod 18

Blend要求解决方案在配置管理器中也有一个AnyCPU平台.
不会加载解决方案中的任何C++(包括C++/CLI)项目.

我的解决方案中有AnyCPU + x86 + x64平台,AnyCPU不构建非C#项目.

将窗口/控件放在AnyCPU C#dll中,这样就可以混合编辑它们.
(不要从它们引用x86/x64项目.)

将exe设置为仅x86和x64(无AnyCPU) - 不会在混合(无AnyCPU)中运行,但解决方案仍将构建.


Mat*_*423 10

还有一些其他原因可能发生:

1)缺少参考文献.添加对PresentationCore,PresentationFramework和WindowsBase的引用

它也可以从错误的平台上寻找.dll.我刚刚通过以下更改解决了我的问题:

在相关的.csproj文件中,更改此行

<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
Run Code Online (Sandbox Code Playgroud)

<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
Run Code Online (Sandbox Code Playgroud)

  • 马特,你知道你改变的后果吗?如果您链接了任何x86 DLL,您的应用将不再在x64计算机上运行. (2认同)