【问题标题】:How does the ".NET for Metro style apps" reference in VS11 Beta work, exactly?VS11 Beta 中的“.NET for Metro 风格应用程序”参考究竟是如何工作的?
【发布时间】:2012-05-07 10:28:15
【问题描述】:
当您在 VS11 测试版中创建一个新的 C# Metro 风格应用程序时,它只有两个引用:一个指向 Windows.winmd,这是一个文件,我明白了;一个指向“.NET for Metro style apps”,它似乎指向 Reference Assemblies 下的 .NETCore 文件夹,而不是特别指向任何文件。两个引用的文件类型属性都是“SDK”。
我是否正确地猜测文件夹引用有效地引用了该文件夹中的每个文件?那里有什么特别有趣的编译时事情吗?有没有办法可以创建一个可以以相同方式引用的文件夹?
【问题讨论】:
标签:
c#
windows-8
visual-studio-2012
【解决方案1】:
当您提高构建详细程度、工具 + 选项、项目和解决方案、构建和运行、MSBuild 项目构建输出详细程度设置时,您会看到这一点。就在“TargetMonikerDisplayName”之后,它会变得很有趣,它会显示一条消息,显示它计算了哪些引用程序集,Task "Csc" 通知显示正在传递给 C# 编译器的命令行选项。
你会看到它通过了他们所有。我在 .NETCore\v4.5 目录中有 71 个引用程序集,编译器有 72 个 /reference 选项,Windows.winmd 有 1 个额外的
因此,您始终可以在 C# Metro 应用程序中编写这样的代码;)
string newline = Microsoft.VisualBasic.Constants.vbCrLf;
【解决方案2】:
如果您在控制台上使用msbuild 构建项目,您将能够看到确切正在发生什么。所有 .Net 引用都作为 /reference 编译器选项传递给编译器,所以我认为编译时不会发生任何特殊或有趣的事情。
似乎在msbuild 上做了一些特殊的工作,以包含对 Windows SDK 和 .Net 的引用,而不是可用于其他目的的标准功能。如果您打开 csproj 文件,您会看到所有 .Net 和 Windows 引用都已自动添加。