无法构建并调试包含.NET Standard 2.0类库的ASP.NET Core 2.1应用
嘿,我之前在折腾ASP.NET Core预览版项目时也碰到过类似的坑,给你几个实际好用的排查和解决办法:
先单独验证类库项目的构建
预览版VS的依赖构建偶尔会抽风,先别直接跑主项目,右键你的类库项目MyProject.MyClassLibraryProject,选择生成,看看有没有编译错误。如果类库本身没编译过(比如有语法错误、引用丢了),那主项目肯定找不到它的DLL文件。要是类库生成失败,先把这些基础问题解决了再说。彻底清理缓存后重新生成
预览版工具链的缓存问题真的很常见,按这个步骤来:- 点击VS顶部菜单的
生成->清理解决方案 - 手动删掉所有项目里的
bin和obj文件夹(重点是类库项目的这两个文件夹,有时候清理解决方案不会完全清干净) - 重新生成整个解决方案,再启动调试试试
- 点击VS顶部菜单的
确认项目框架和引用的正确性
右键主项目选属性,在应用程序标签里确认目标框架是.NET Core 2.1(预览版)。然后去主项目的依赖项->项目里看看类库的引用,有没有黄色感叹号?要是有的话,先移除引用再重新添加一遍,确保引用路径是对的。虽然.NET Standard 2.0和.NET Core 2.1兼容,但预览版里偶尔会有识别故障。升级到最新的VS预览版
你用的是15.7 Preview6,微软在预览版迭代里经常会修复这类工具链bug。打开VS的工具->获取工具和功能,看看有没有更新的预览版本,升级一下说不定直接就解决问题了。排查OneDrive同步的锅
注意到你的项目存在OneDrive文件夹里,OneDrive的实时同步有时候会锁定文件,导致VS没法正常写入或者读取DLL。可以试试暂停OneDrive同步后重新生成,或者干脆把整个项目复制到本地非OneDrive的文件夹(比如C:\Projects)里再调试,很多时候这个方法能解决奇怪的文件访问问题。
如果这些都没用,你可以打开VS的输出窗口,把输出类型改成生成,然后看类库项目的生成日志,里面会有更详细的错误信息,比如是不是权限问题导致没法生成DLL到指定路径,或者有其他隐藏的编译错误。
内容的提问来源于stack exchange,提问作者Sam

