bit*_*ift 0 .net c# visual-studio-2012
在MSIL代码的任何地方都可以使用用于生成程序集的程序名称写入程序集吗?
Visual Studio不会构建任何内容 -Visual Studio使用MSBuild进行其构建1:
Visual Studio托管MSBuild来加载和生成托管项目。
实际上,您可以通过下载Microsoft Build Tools来在不使用 Visual Studio的情况下构建MSIL代码:
如果您的计算机上未安装Visual Studio,则可以使用Build Tools 2013生成托管应用程序。此下载中还包括Visual Basic和C#编译器。(在较早版本中,这些工具包含在独立的.NET Framework中。)
任何满足ECMA 335标准的编译器都可以编译有效的公共语言基础结构(CLI)应用程序-Mono C#编译器就是这样的示例。
换句话说,我认为不可能从程序集中获取有关Visual Studio版本的信息。
除非Visual Studio向程序集中添加了一些其他元数据(我认为不是),否则要找出Visual Studio的哪个版本构建了特定程序集,您将必须执行一些操作,例如将自己的自定义属性添加到程序集,然后可以使用反射进行检索。
显然,您可以基于程序集所针对的.NET版本排除Visual Studio的早期版本(例如,Visual Studio 2012是第一个支持.NET 4.5的版本)。
下表是从Visual Studio 的Wikipedia文章编译而来的:
.NET Min Visual
Studio version
1.0 2002 (7.0)
1.1 2003 (7.1)
2.0 2005 (8.0)
3.0 2005 (8.0)
3.5 2008 (9.0)
4.0 2010 (10.0)
4.5 2012 (11.0)
4.5.1 2012 (11.0)
4.5.2 2012 (11.0)
4.6 2015 (14.0)
Run Code Online (Sandbox Code Playgroud)
1默认情况下,Visual Studio 2015及更高版本使用新的Roslyn编译器进行编译。
| 归档时间: |
|
| 查看次数: |
452 次 |
| 最近记录: |