当你在VS11 beta中创建一个新的C#Metro风格应用程序时,它只有两个引用:一个是Windows.winmd,这是一个文件,我得到了;和一个“.NET for Metro风格应用程序”,它似乎指向参考程序集下的.NETCore文件夹,而不是特定于任何文件。两个引用的“文件类型”属性都是“SDK”。
我是否正确地猜测文件夹引用是否有效地引用了该文件夹中的每个文件?是否有任何有趣的特定编译时间的事情?有没有办法可以创建一个可以同样方式引用的文件夹?
答案 0 :(得分:1)
当您提升构建详细程度,工具+选项,项目和解决方案,构建和运行,MSBuild项目构建输出详细程度设置时,您可以看到这一点。在“TargetMonikerDisplayName”之后,它会显示一条消息,显示它计算的参考程序集以及显示传递给C#编译器的命令行选项的Task "Csc"
通知。
你会看到它传递给他们所有。我在.NETCore \ v4.5目录中有71个引用程序集,编译器获得72个/引用选项,1个额外的Windows.winmd
所以你总是可以在C#Metro应用程序中编写这样的代码;)
string newline = Microsoft.VisualBasic.Constants.vbCrLf;
答案 1 :(得分:0)
如果您在控制台上使用msbuild
构建项目,您将能够看到完全正在发生什么。所有.Net引用都作为/reference
编译器选项传递给编译器,所以我认为在编译时没有任何特殊或有趣的事情发生。
似乎在msbuild
上完成了一些特殊工作,包括Windows SDK和.Net的引用,而不是可用于其他目的的标准功能。如果打开csproj
文件,则可以看到所有.Net和Windows引用都是自动添加的。