0

我正在尝试从 VS2017 创建的 BlankApp1 开始重建 C++/winrt 应用程序 - 起初,blankapp 构建并运行得很好,但后来我尝试使用工具/选项/xaml 中的禁用开关禁用 xaml 设计器(我更喜欢不要使用设计器)。但是,原始示例 xaml 文件仍然存在,因此示例界面仍然存在。我尝试删除 xaml 文件,之后什么都不会构建。最后我删除了整个 blankapp 目录,在 VS 中重新打开 xaml 设计器,重新启动 VS,现在已经尝试了两次来创建和运行新的 BlankApps,而不更改其中的任何内容。我收到构建错误:“无法打开包含文件'XamlMetaDataProvider.gh'(编译源文件 GeneratedFiles\XamlTypeInfo.Impl.g.cpp)” 有谁知道要在 VS 中进行哪些更改以使其再次起作用?如果我想禁用设计器,是否足以在选项中将其关闭,或者某些文件也需要更改?

4

1 回答 1

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 预览版 3 中,现在支持 C++/winrt 应用程序中的 xaml 设计器,我找不到使用我在以前的 VS 中以编程方式创建的复杂和动态 xaml 接口的方法。我可能不得不发布一个新的和单独的问题:是否仍然可以以编程方式添加 xaml 元素?

于 2018-10-16T19:16:21.023 回答