如何确定DLL是需要完整的.NET 4还是仅需要客户端配置文件
使用第三方程序集时,我需要一种方法来检测它们是需要完整的.NET 4还是仅需要.NET 4 Client Profile.
我已经看到了其他方法来检测引用Determine .NET Framework version for dll的.NET版本,但该问题中概述的方法没有显示如何检测Client Profile vs Full.可能吗? 我正在寻找任何解决方案,它不一定是代码/运行时解决方案. 解决方法
请注意,下面的解决方案特定于.NET 4.0框架,TargetFrameworkAttribue是4.0的新功能.
我编译了两个应用程序,一个针对客户端框架,另一个针对完整.我在ildasm.exe中打开它们,发现它们都应用了 using System; using System.Linq; using System.Runtime.Versioning; class Program { static void Main(string[] args) { var a = System.Reflection.Assembly.GetExecutingAssembly(); var att = a.GetCustomAttributes(false).OfType<TargetFrameworkAttribute>().Single(); Console.WriteLine(att.FrameworkDisplayName); Console.Read(); } } 更新:是的确,针对“.NET Framework 3.5客户端配置文件”编译应用程序不包含该属性(代码无法再看到它,ildasm不会显示它).除了你链接的其他答案之外,我不知道如何在这种情况下确定目标框架. 为了节省我认为对你的代码库有无意义的限制,我会让生活更轻松,只需针对完整的框架.如果客户端具有安装客户端配置文件的权限,那么对于Full框架也是如此 – 它只是略大一些(我发现一个消息来源说它只增加了15%,从而否定了大部分“小客户端软件包”的好处,41MB而不是48MB).你的来电. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在Windows上使用带有VirtualEnv的Python Image Library
- 窗口 – 如何获得R中的屏幕分辨率
- windows – 如何劫持Caps Lock键以进行剪切,复制,粘贴键盘操
- 在Windows上的ssh客户端和服务器上的Mercurial
- Windows 8.1找回消失的【全形半形】切换功能,切换好简单!!
- 是否可以通过ACS 2.0身份提供商从Windows Live ID获得任何其
- 如何为40个Windows用户设置主文件夹
- 更改Windows IP 地址的bat脚本
- windows-phone-8.1 – 如何避免StorageFile.CopyAsync()在复
- Windows – 安装程序或无安装程序?
- 项目管理 – XP vs传统的良好项目管理
- 为Windows编写跨平台(32位和64位兼容)程序(如.NE
- windows – 我的事件日志中的0x19 KDC_ERR_PREAU
- Windows版 SQL Server 2017 AlwaysOn AG 自动初始
- 如何获取Windows / C#顶层窗口的进程名称和标题
- 【ZT】iSpring Free Cam – 免费易用的「录制屏幕
- windows-8 – 如何访问特定的resw资源文件
- Windows Filtering Platform用户模式或内核模式?
- Windows 10 子系统 Ubuntu 中安装 FastAdmin
- 存储 – 为什么robocopy导致我的Windows 2012服务