我最近安装了Visual Studio 2012 RC以及VS 2012 SDK和LightSwitch Extensibility Toolkit。
这是我 Client.Design -> TControl.XAML 文件中的 XAML 代码
<UserControl x:Class="CustomControls.Presentation.Controls.TControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:framework="clr-namespace:Microsoft.LightSwitch.Presentation.Framework;assembly=Microsoft.LightSwitch.Client">
<Grid Width="Auto">
<Grid.RowDefinitions>
<RowDefinition Height="100"></RowDefinition>
<RowDefinition Height="40"></RowDefinition>
</Grid.RowDefinitions>
<framework:ContentItemPresenter ContentItem="{Binding ChildItems[0]}" Grid.Row="0" Margin="3" />
<framework:ContentItemPresenter ContentItem="{Binding ChildItems[1]}" Grid.Row="0" Margin="3" />
</Grid>
</UserControl>
我在设计器上看不到此 XAML 的输出。相反,我在设计器区域看到此错误消息:
Exception: Error HRESULT E_FAIL has been returned from a call to a COM component.
Stacktrace:
at MS.Internal.XcpImports.CheckHResult(UInt32 hr)
at MS.Internal.XcpImports.Collection_InsertValue[T](PresentationFrameworkCollection`1 collection, UInt32 index, CValue value)
at MS.Internal.XcpImports.Collection_InsertDependencyObject[T](PresentationFrameworkCollection`1 collection, UInt32 index, DependencyObject value)
at System.Windows.PresentationFrameworkCollection`1.InsertDependencyObject(Int32 index, DependencyObject value)
at System.Windows.Controls.UIElementCollection.InsertInternal(Int32 index, UIElement value)
我强烈怀疑这与这里涉及的命名空间和 Silverlight 版本有关。我的项目设置为使用 Silverlight 版本 5。
快速谷歌搜索和"堆栈溢出"确实揭示了有关此错误的一些一般信息,但没有太大帮助。
任何帮助将不胜感激。
为了在VS2013 ultimate中解决此问题,我必须遵循帖子 http://rathodkrunal.blogspot.com/2011/11/visual-studio-2010-error-hresult-efail.html
其中它谈到简单地清理Visual Studio的ItemTemplateCache并使用/setup标志运行一次vs。
如果链接断开或不可用,这里是旧 VS 的缓存曾经的位置:
您可以在"程序文件\Microsoft视觉对象中删除项目缓存 Studio 10.0\Common7\IDE\ProjectTemplatesCache",然后运行"devenv /setup"再次构建缓存以查看是否有帮助。
您已经明确了您安装了哪些版本的 LS RC 和 2012 SDKC,但您安装了哪个版本的扩展性工具包?我知道一个是为 Beta 发布的,我不确定另一个是否是专门为 LS V2 RC 发布的。