VS2019下VB.NET ASP.NET解决方案添加PJATools项目始终指向错误路径是什么原因
- Visual Studio本地缓存文件残留
VS会在解决方案同级目录生成隐藏的
.vs文件夹,以及与解决方案同名的.suo用户选项文件,这些文件会缓存项目的历史路径、加载配置等信息,优先级高于解决方案文件的显式配置。
操作步骤:完全关闭所有VS窗口,删除解决方案目录下的.vs隐藏文件夹和所有.suo文件,重启VS重新加载解决方案后再添加正确路径的项目。 - 全局程序集缓存(GAC)或.NET引用路径配置冲突
.NET Framework会优先从GAC加载同名程序集,同时VS的全局引用搜索路径如果包含错误项目的文件夹,也会导致路径重定向。
操作步骤:- 打开VS自带的「开发人员命令提示符」,运行
gacutil /l PJATools检查是否有同名程序集被注册到GAC,如果有则用gacutil /u PJATools移除 - 打开VS的「工具」-「选项」-「项目和解决方案」-「通用属性」-「引用路径」,确认错误路径没有被添加到全局搜索列表中
- 打开VS自带的「开发人员命令提示符」,运行
- 项目导入的
.props/.targets文件隐藏配置你检查的
.vbproj主文件可能通过Import标签引入了外部的配置文件,这类文件中如果硬编码了PJATools的引用路径,优先级高于主项目文件的显式配置。
操作步骤:打开所有引用PJATools的项目文件,搜索所有<Import>标签,检查引入的外部.props/.targets文件中是否包含PJATools的路径配置。 - ASP.NET临时编译缓存残留
.NET Framework ASP.NET项目会将编译缓存存储到系统级临时目录,旧的引用缓存没有清理的情况下会强制加载错误路径的程序集。
操作步骤:关闭VS后,清空以下目录的所有内容:C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET FilesC:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files - 系统注册表残留项
VS会在注册表中缓存历史加载项目的路径信息,旧的残留记录可能会导致路径匹配错误。
操作步骤:打开注册表编辑器,定位到HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\16.0_*(16.0对应VS2019版本号,后缀为随机生成的实例ID),删除其中MRUItems\ProjectFiles下包含错误PJATools路径的所有项,同时检查HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx下是否有包含错误路径的子项,如有则删除。
内容的提问来源于stack exchange,提问作者Rod

