windows-8 - 在 Metro 风格应用程序中使用单词 "Windows"作为您自己的命名空间的一部分

标签 windows-8 windows-runtime

如果您尝试在 Metro 风格应用程序(例如 MyCompany.Windows)中使用 Windows 作为您自己的命名空间的一部分,它似乎会导致编译器关闭,因为它们开始在您的命名空间而不是 Windows 下寻找 WinRT 内容.*.

例如,如果您创建一个名为 App1 的空白 Windows Metro 风格应用,并将 App1 命名空间重命名为 App1.Windows 并尝试编译它,您将收到错误:

命名空间“App1.Windows”中不存在类型或命名空间名称“UI”(是否缺少程序集引用?)F:\temp\App1\App1\obj\Debug\App.g.i.cs

生成的文件顶部如下所示:

namespace App1.Windows
{
#if !DISABLE_XAML_GENERATED_MAIN
    public static class Program
    {
        [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Windows.UI.Xaml.Build.Tasks"," 4.0.0.0")]
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        static void Main(string[] args)
        {
            Application.Start((p) => new App());
        }
    }
#endif

    partial class App : Windows.UI.Xaml.Application

问题是编译器开始在 App1.Windows 下查找 Windows.UI。

现在这并不是什么新鲜事,如果您将命名空间命名为 App1.System ,那么您可能会在某个时候遇到类似的麻烦。问题在于,相当多的 WPF/Silverlight/Windows Phone 代码都使用 MyCompany.Windows.Xyz 命名空间,并且可能容易受到此类问题的影响。

Microsoft 是否有一些关于如何处理这些命名空间的指南(似乎找不到)?或者也许有一些计划在未来的版本中解决这个问题?或者我只是错过了什么?

最佳答案

我查看了这个问题,我们应该在生成的代码中使用 global::。我们已修复此问题,并将在下一版本的 Visual Studio 中提供。

关于windows-8 - 在 Metro 风格应用程序中使用单词 "Windows"作为您自己的命名空间的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11294764/

相关文章:

c# - 动画依赖属性

windows-8 - 是否可以将 Microsoft Kinect SDK 与 Metro Style 应用程序一起使用?

c# - 聚合源 : How to access content:encoded?

windows-runtime - 从 WinRT 的 PointeWheelChanged 事件获取增量值

c# - Lumia imaging sdk 3 blur effect issue (找不到组件。(Exception from HRESULT : 0x88982F50))

printing - WinRT Metro 应用程序直接打印(无打印对话框)

windows-phone-7 - Windows Phone 模拟器问题

c# - 如何结束 Windows 8 动态磁贴的定期更新

javascript - 在 Windows 8 Metro 的 javascript 中使用图像作为超链接

c# - 在 c# 和 winrt 中将流保存到文件