构建时Visual Studio中出现奇怪的功能区错误
本文关键字:功能区 错误 Visual Studio 构建 | 更新日期: 2023-09-27 18:31:41
我在Visual Studio 11中使用.NET 4.5构建WPF应用程序时,在Visual Studio中收到一个奇怪的错误。
我的 WPF XAML 标记如下所示:
<RibbonWindow x:Class="Fablelane.DesktopApplication.CreateStory"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Create new story" Height="468" Width="526">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<Ribbon>
<Ribbon.ApplicationMenu>
<RibbonApplicationMenu>
</RibbonApplicationMenu>
</Ribbon.ApplicationMenu>
<RibbonTab Margin="0" Header="Format">
<RibbonGroup Header="Font">
<StackPanel Orientation="Horizontal">
<RibbonComboBox>
<RibbonGallery SelectedValue="Heading 1"
SelectedValuePath="Content"
MaxColumnCount="1">
<RibbonGalleryCategory>
<RibbonGalleryItem Content="Heading 1" Foreground="#16ea00" FontSize="20" />
<RibbonGalleryItem Content="Heading 2" Foreground="#00c6ff" FontSize="18" />
<RibbonGalleryItem Content="Heading 3" Foreground="#999999" FontSize="16" />
<RibbonGalleryItem Content="Heading 3" Foreground="#707070" FontSize="14" />
<RibbonGalleryItem Content="Content" Foreground="#FF606060" />
</RibbonGalleryCategory>
</RibbonGallery>
</RibbonComboBox>
</StackPanel>
<RibbonControlGroup Margin="2">
<RibbonToggleButton Label="B"
FontWeight="Bold" FontFamily="Times New Roman" Padding="2" />
<RibbonToggleButton Label="I"
FontStyle="Italic" FontFamily="Times New Roman" Padding="2" />
<RibbonToggleButton Label="U" FontFamily="Times New Roman" Padding="2,2,2,0" />
</RibbonControlGroup>
</RibbonGroup>
</RibbonTab>
<RibbonTab Margin="0" Header="Options">
</RibbonTab>
</Ribbon>
<RichTextBox Grid.Row="1">
</RichTextBox>
</Grid>
</RibbonWindow>
现在,当我构建时,我收到错误:
未知的生成错误,程序集"System.Windows.Controls.Ribbon.Gallery"中的"方法get_Command"系统.Windows.Controls.Ribbon.Gallery,版本=4.0.0.0,区域性=中性,公钥令牌=b77a5c561934e089"没有实现。
当我从代码中删除 RibbonGallery 元素时,它可以很好地编译和运行。
可能应该注意的是,我可以很容易地看到设计器视图在Visual Studio中呈现得很好,里面有RibbonGallery元素。它只是在构建过程中失败。
从 4.0 到 4.8 我们遇到了同样的问题,但我们不得不删除并重新添加正确的系统.dll到引用中。
对我来说,它看起来像一个错误,你为什么不使用反射器并检查 ICommand 的吸气器是否正确暴露?
我看不出问题。
- 我有带有最新更新的VS 11测试版。
- 从 http://www.microsoft.com/en-us/download/details.aspx?id=11877 下载功能区(2010 年 10 月)
- 创建新的 WPF .NET 4.5 应用
- 添加对 System.Windows.Controls.Ribbon 的引用
- 将问题中的代码粘贴到应用程序中
- 设计、构建、运行,没问题
如果我使用 DotPeek 查看功能区程序集,则可以看到 Command 属性
public ICommand Command
{
get
{
return (ICommand) this.GetValue(RibbonGallery.CommandProperty);
}
set
{
this.SetValue(RibbonGallery.CommandProperty, (object) value);
}
}
但是你似乎没有使用它。
是否值得从头开始创建新的测试应用程序?