AlternateContent标记导致IDE问题,但不导致编译器问题

时间:2014-06-27 19:44:27

标签: visual-studio xaml visual-studio-2012 ide visual-studio-2013

我正在研究传统产品。我需要根据构建常量使复杂UI的区域可选。将这些区域移动到控件中是不可行的,因此我使用AlternateContent Tags(mc:AlternateContent)。

这在编译时非常有效,应用程序按预期运行。

但是,IDE为每个AlternateContent声明了一个错误,并附上了Choice标签,并且不会加载设计窗口/预览(在VS或Blend中):

The name "AlternateContent" does not exist in the namespace "http://schemas.openxmlformats.org/markup-compatibility/2006"
The name "Choice" does not exist in the namespace "http://schemas.openxmlformats.org/markup-compatibility/2006"

我尝试过,重建,清理和重建,在发布,调试,x86,x64和重新启动之间更改构建设置。什么都没有帮助。它甚至在Blend中给出了相同的错误。

我希望这只是我正在做的蠢事,我可以解决它;或者可能是我应该使用的更新的名称空间URI。如果我无法解决错误,我希望有人知道在IDE中抑制这些错误的技巧,所以可以使用它。

我有一个完全更新的VS2013 Premium安装。然而,它在运行VS14 CTP的测试机器上有一个小故障,另一个运行VS2012(完全更新),两者都没有任何插件;所以我不得不认为我的电脑安装不是问题。

2 个答案:

答案 0 :(得分:9)

派对有点晚了,但是如果你将mc标签添加到Ignorable属性中,那么错误就会消失。您的内容不会在设计师中展示,但在我编译项目的不同风格时为我工作。

$ awk '{printf "foo \047%s\047,\047%s\047 bar\n",$3,$4}' file
foo '63823170268','1C:1A:C0:20:07:BD' bar
foo 'C2W0T979L','2C:8A:72:D8:2F:81' bar
foo 'PP2275468','50:EA:D6:AB:61:EE' bar

答案 1 :(得分:0)

这个怎么样:

public class BuildConstants
{
    public bool IsDebug
    {
        get
        {
#if DEBUG
            return true;
#else
            return false;
#endif
        }
    }
}

和xaml:

<Application.Resources>
    <BooleanToVisibilityConverter x:Name="BooleanToVisibilityConverter"></BooleanToVisibilityConverter>
    <l:BuildConstants x:Key="BuildConstants" />
</Application.Resources>

<Grid Visibility="{Binding IsDebug, Source={StaticResource BuildConstants}, Converter={StaticResource BooleanToVisibilityConverter}}">
    <TextBlock Text="This will be visible only when DEBUG build constant is present"></TextBlock>
</Grid>