我刚刚安装了Blend 4,并且正在尝试将它与一个相当大的VS2010项目一起使用,该项目包含一些带有一些本机代码的C ++ / CLI程序集。对于很多控件,我得到一个Blend错误,例如'名称XXX在命名空间中不存在'clr-namespace:YYY'在尝试打开设计视图时。
我在网页(包括此论坛)上搜索了类似的错误,并确保我已遵循所有可用的建议,例如确保我有一个AnyCPU配置,我没有使用,例如'x64 \ Debug'作为输出文件夹,我在我的XAML中有正确的命名空间声明(在我的clr-namespace声明中使用'assembly')。
我还制作了一个简单的新项目,只能访问其中一个有问题的程序集,但我仍然会收到错误。
在我看来,该问题与引用包含某些非托管代码的任何C ++ / CLI程序集的程序集有关。我似乎没有得到引用仅托管代码程序集的程序集的错误。
什么可能导致错误?
此致
雷夫
这里反应不大,所以也许我应该重写一下我的问题:
是否有人成功将Expression Blend用于使用具有非托管代码的程序集的项目?
此致 雷夫
答案 0 :(得分:1)
有一个类似的问题:项目在VB 2010中正确编译而没有错误,但在Expression Blend 4中打开它时出错(顺便说一句,美容工具):
名称XXX在命名空间“clr-namespace:YYY”中不存在。
在线:
<CollectionViewSource x:Key="YYYViewSource" d:DesignSource="{d:DesignInstance {x:Type my:YYY}, CreateList=True}" />
在我的情况下,它是我的edmx中的实体,名为“YYY”的FunctionImport,其复杂类型为“YYY_Result”,而CollectionViewSource中的XAML代码引用该实体“YYY”。
这个XAML代码在VB 2010中生成没有错误,编译并运行得很好(在Blend中也正确编译),但在Blend中没有设计视图。
解决方案:我意识到我在x上的错误:输入CollectionViewSource并更正了从“YYY”到“YYY_Result”的名称并且它有效:
<CollectionViewSource x:Key="YYYViewSource" d:DesignSource="{d:DesignInstance {x:Type my:YYY_Result}, CreateList=True}" />
结论: 也许这个答案与您使用某些非托管本机代码的C ++ / CLI程序集的问题并不完全相关,也许是。
此案例只是在VB 2010中正确编译项目的一个很好的示例,但在创建设计视图时,Blend 4中的错误消息上面生成了相同的XAML(许多用户在此论坛上报告了类似问题)。