我有一些构建代理,通过TeamCity设置为我们构建.NET代码,但我开始怀疑尽管项目设置,它们是否输出了.NET 4.5编译的程序集。我之所以对此存疑,是因为我不知道Windows Server 2012原装是否带有.NET 4.5或4.0,因此是否仅具有4.0或任何4.0程序集。
我如何查看磁盘上的程序集并确定它是使用.NET 4.0还是4.5构建的?
正如Marc Gravell在这篇博客文章中明确表明的那样,这些程序集的构建方式存在差异,即使我们可能并没有特别使用.NET 4.5程序集/功能。
我尝试在程序集上使用ILDASM,但已知的.NET 4.5(.1)控制台应用程序的元数据引用仍然显示为4.0:
我如何查看磁盘上的程序集并确定它是使用.NET 4.0还是4.5构建的?
正如Marc Gravell在这篇博客文章中明确表明的那样,这些程序集的构建方式存在差异,即使我们可能并没有特别使用.NET 4.5程序集/功能。
我尝试在程序集上使用ILDASM,但已知的.NET 4.5(.1)控制台应用程序的元数据引用仍然显示为4.0:
// Metadata version: v4.0.30319
我尝试仅安装了 .NET 4.0 的情况下启动 Windows 7 应用程序,它可以启动,但如果唯一确定 所有 功能是否正常的方法是通过测试 所有, 那么我更愿意先尝试一些更多的方式来确定它是否使用了正确的版本。
那么这种可能性存在吗?
Assembly.LoadFrom(@"d:\dev\vs.net\app451\app451\bin\debug\app451.exe").GetCustomAttributes(typeof(TargetFrameworkAttribute)).Dump();
,它生成了程序集版本。 - Lasse V. Karlsen