gpt4 book ai didi

.net - 如何识别程序集已使用.NET 4.5(相对于.NET 4.0)进行编译?

转载 作者:行者123 更新时间:2023-12-04 13:19:32 26 4
gpt4 key购买 nike

我有一些通过TeamCity设置为我们构建.NET代码的构建代理,我开始怀疑,尽管进行了项目设置,但他们是否正在输出.NET 4.5构建的程序集。我的怀疑来自这样一个事实:我不知道Windows 2012 Server是否附带了.NET 4.5或4.0,因此不知道它是否只有4.0或任何4.0程序集可用。

如何查看磁盘上的程序集并确定它是使用.NET 4.0还是4.5构建的?

this blog post by Marc Gravell可以明显看出,尽管我们可能实际上未专门使用任何.NET 4.5程序集/功能,但这些程序集的构建方式也有所不同。

我尝试在程序集上使用ILDASM,但已知的.NET 4.5(.1)控制台应用程序上的元数据引用仍为4.0:

// Metadata version: v4.0.30319

我尝试在仅安装.NET 4.0的情况下启动应用程序Windows 7,并且启动了该应用程序,但是如果要弄清一切是否正常的唯一方法是通过测试所有内容,那么我宁愿再尝试一下以查看其是否内置首先是正确的版本。

那有可能吗?

最佳答案

运行ildasm.exe并查看 list 。您会看到 TargetFrameworkAttribute :

.custom instance void [mscorlib]System.Runtime.Versioning.TargetFrameworkAttribute::.ctor(string) = 
( 01 00 1A 2E 4E 45 54 46 72 61 6D 65 77 6F 72 6B // ....NETFramework
2C 56 65 72 73 69 6F 6E 3D 76 34 2E 35 01 00 54 // ,Version=v4.5..T
0E 14 46 72 61 6D 65 77 6F 72 6B 44 69 73 70 6C // ..FrameworkDispl
61 79 4E 61 6D 65 12 2E 4E 45 54 20 46 72 61 6D // ayName..NET Fram
65 77 6F 72 6B 20 34 2E 35 ) // ework 4.5

CLR使用此属性来验证计算机上是否存在正确的版本,如果没有,则使用 prompting the user来自动安装它。

关于.net - 如何识别程序集已使用.NET 4.5(相对于.NET 4.0)进行编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21015809/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com