Visual Studio项目存在损坏引用 如何在本地补全对应版本DLL
修复VS项目强名称引用缺失问题操作指南
方案1:全局部署到GAC(适用于同设备所有项目共用该程序集的场景)
- 首先获取版本号为3.0.0.0、公钥Token为b77a5c561934e089的
System.ServiceModel.dll:该版本属于.NET Framework 3.0的内置组件,可在已安装.NET Framework 3.0的设备的C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation路径下直接提取,也可通过Windows功能面板安装.NET Framework 3.0自动获取对应文件。 - 以管理员身份打开Visual Studio对应的开发人员命令提示符
- 执行GAC注册命令:
gacutil /i 你的本地dll存放路径\System.ServiceModel.dll - 注册完成后重启Visual Studio并重新加载项目,VS即可自动匹配到强名称完全符合的程序集,原有引用无需修改。
方案2:项目级本地路径兜底(仅作用于当前项目,无需修改系统全局配置)
- 右键报错项目→选择「卸载项目」→再次右键已卸载的项目→选择「编辑项目文件(.csproj/.vbproj)」
- 在项目文件的第一个
<PropertyGroup>节点下添加如下配置,指定自定义程序集搜索路径:
<AssemblySearchPaths> 你存放所有匹配版本DLL的本地文件夹绝对路径; $(AssemblySearchPaths) </AssemblySearchPaths>
- 把所有损坏引用对应的、强名称匹配的DLL文件全部放入上述配置的本地文件夹中
- 保存项目文件后重新加载项目即可,VS会优先从你指定的路径搜索符合要求的程序集,原有引用节点无需任何修改。
补充说明
如果后续不想长期维护本地DLL文件,也可以用VS的全局替换功能批量修改引用:在「在文件中替换」功能里,搜索值填<Reference Include="System.ServiceModel, Version=3.0.0.0.*",替换值填<Reference Include="System.ServiceModel" />,选择所有项目文件作为搜索范围,可一次性完成所有引用的修改,操作成本极低。
内容的提问来源于stack exchange,提问作者Jacopo
相关产品推荐
相关产品推荐

