为何TFS 2018服务器缺失TFS 2015曾有的特定DLL文件?
Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll? 这其实是因为TFS在从2015到2018的版本迭代中,身份验证组件的依赖和实现方式发生了显著变化,具体来说有这几个关键点:
ADAL库的替换与集成方式改变
TFS 2015依赖的是ADAL(Active Directory Authentication Library),其中Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll是ADAL专门用于Windows Forms界面的身份验证弹窗组件,当时这个库是作为独立的DLL随TFS安装包一起部署的。而到了TFS 2018,微软已经逐步转向使用**MSAL(Microsoft Authentication Library)**来替代ADAL,MSAL的组件结构更统一,不再拆分出单独的Windows Forms专用DLL,相关的UI功能已经整合到核心MSAL库或者系统自带的身份验证框架中了。TFS 2018的身份验证架构优化
TFS 2018对身份验证流程做了重构,更多地依赖于系统级的身份验证组件(比如Windows自身的凭据管理器、WebView控件),而不是单独打包第三方UI库。这意味着原本由那个Windows Forms DLL提供的登录弹窗功能,现在已经被更原生的系统组件或者整合后的MSAL功能取代,所以不再需要单独部署这个DLL文件。部署方式的简化
随着TFS版本升级,微软对依赖库的管理也更规范,很多原本独立的DLL要么被整合到主程序集里,要么通过NuGet包在运行时动态获取(而不是预安装到系统目录)。所以你在TFS 2018的安装目录里找不到这个文件,其实是因为它不再以独立文件的形式存在,而是被整合到其他组件中或者通过更现代的依赖管理方式加载。
如果你的场景中需要用到类似的Windows Forms身份验证功能,建议直接使用MSAL库来实现,它是当前微软推荐的身份验证解决方案,兼容性和安全性都比旧的ADAL更好。
内容的提问来源于stack exchange,提问作者fr0zt

