禁用/重新启用XAML设计器后,Visual Studio 2017无法生成空白应用程序吗?

时间:2018-10-15 22:58:15

标签: visual-studio xaml c++-winrt

我正在尝试从VS2017创建的BlankApp1开始重新构建C ++ / winrt应用程序-最初构建并运行Blankapp很好,但是随后我尝试使用tools / options / xaml中的disable开关禁用xaml设计器(我不想使用设计师)。但是,原始的样本xaml文件仍然存在,因此样本接口仍然存在。我尝试删除xaml文件,但此后没有任何构建。最终,我废弃了整个blankapp目录,在VS中重新打开xaml Designer,重新启动了VS,现在我尝试了两次以创建和运行新BlankApp的方式而不更改其中的任何内容。我收到构建错误:“无法打开包含文件'XamlMetaDataProvider.g.h(编译源文件GeneratedFiles \ XamlTypeInfo.Impl.g.cpp)”。有人知道在VS中进行哪些更改以使其再次起作用吗?而且,如果我想禁用设计器,是否足以在选项中将其关闭,还是某些文件也需要更改?

1 个答案:

答案 0 :(得分:0)

我想我知道如何构建和运行它,尽管我还没有像以前的应用那样以编程方式成功添加xaml元素。这是使blankapp在禁用xamldesigner的情况下进行编译和运行的原因:(1)使用Tools / Options / Xaml中的开关关闭设计器,然后重新启动Visual Studio。 (2)找到mainpage.idl并插入以下声明:

 runtimeclass XamlMetaDataProvider : Windows.UI.Xaml.Markup.IXamlMetadataProvider
    {
        XamlMetaDataProvider();
    };

这似乎是关闭设计器所需的缺少的步骤。我希望有人如果我弄错了可以纠正我,但这似乎可以解决问题。 [更新]在Visual Studio 15.9.0 Preview 3中,现在已支持C ++ / winrt应用程序中的xaml设计器,我找不到使用以前在VS中以编程方式创建的复杂和动态xaml接口的方法。我可能不得不对此发表一个新的独立问题:是否仍然可以通过编程方式添加xaml元素?