推送.NET 5 C#项目到Azure DevOps仓库后丢失引用DLL如何解决
解决方案
问题根因
报错本质由两个原因导致:一是本地添加DLL引用时默认使用了绝对路径,其他设备的本地路径和你的开发环境不一致无法定位文件;二是.NET项目默认的.gitignore规则会屏蔽.dll后缀的文件,导致DLL本身没有被推送到Azure DevOps仓库。
操作步骤
- 首先在解决方案根目录新建专门存放第三方依赖的文件夹,例如命名为
libs,将3个依赖的DLL全部复制到该文件夹中 - 打开项目的引用管理器,删除原有失效的DLL引用,重新从
libs文件夹中选择DLL添加引用,右键每个新添加的引用打开属性页,将复制到输出目录选项设置为始终复制或者如果较新则复制 - 打开仓库根目录的
.gitignore文件,找到屏蔽.dll文件的规则,添加例外规则允许你的依赖DLL提交:
# 允许提交libs目录下的所有DLL文件 !libs/*.dll
如果你的libs文件夹存放在主项目目录下,规则调整为!你的项目名/libs/*.dll即可
- 将
libs文件夹、修改后的项目文件(.csproj)、.gitignore文件全部提交并推送到Azure DevOps仓库
验证逻辑
其他设备克隆/拉取最新代码后,无需手动重新添加引用,直接生成项目即可正常编译运行。后续如果需要更新DLL版本,只要替换libs目录下的对应文件提交推送,所有协作者拉取后即可自动同步。
内容的提问来源于stack exchange,提问作者JOCKH
相关产品推荐
相关产品推荐

