.net - MSB3021 在 Visual Studio 中运行 Service Fabric 应用时无法复制文件找不到部分路径错误
问题描述
我有一个包含多个项目的 Service Fabric 解决方案。我可以在我的本地集群上运行除其中一个之外的所有项目,但由于以下问题,一个特定项目将无法部署:
MSB3021 无法复制文件“C:\Path\To\Repo\src\MyProject\MyService\obj\Debug\netcoreapp2.1\win7-x64\PubTmp\Out\Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.dll " 到 "C:\Path\To\Repo\src\MyProject\MyService\pkg\Debug\MyServicePkg\Code\Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.dll"。找不到路径“C:\Path\To\Repo\src\MyProject\MyService\pkg\Debug\MyServicePkg\Code\Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.dll”的一部分。
还有另外两个错误报告了相同的问题Microsoft.Extensions.Configuration.EnvironmentVariables.dll
和runtimeconfig.json
30 个警告,说明了随机 dll 的相同问题。
我已经做了几次通常的事情:
- 删除所有
bin
,obj
和pkg
目录 - 停止本地集群
- 重新启动 Visual Studio
- 重启机器
- 在单独的目录中签出 repo
该错误指出它无法找到Code
dir 中的部分路径pkg
,但我已经验证它确实存在。
奇怪的是,这只影响了几个项目中的一个。我在这里遗漏了什么明显的东西吗?
解决方案
路径太长。
几乎可以肯定,那些失败的路径突然变得太长了。这就是为什么将 repo 移动到用户目录的根目录就可以了。它还解释了失败看似随机的性质,以及一些项目成功而另一些项目失败的现象;有些路径很长,而另一些则没有。
如果您从输出窗口复制失败的路径并将它们粘贴到 File Exploder,它们就可以正常工作。
但是,如果您从命令行或批处理文件中对它们进行试验,它们将失败。我会花钱解决这个问题。
推荐阅读
- database - SQLite 查询使用 sum 返回错误值的原因
- html - 低于 600 像素的响应式设计会导致导航栏出现问题?
- node.js - 如何使用嵌套 _id 填充同一集合中的数据?
- ruby - 如何将捆绑安装从默认更改为我的项目 gemfile?
- node.js - 节点应用程序正在服务器中运行,但在浏览器中尝试时无法运行
- reactjs - 通过 ReactJs 代码运行 shell 命令
- c# - 使字段的标题越过该字段:asp MVC/Razor
- android - 如何在 JSONArray 响应中返回 Hashmap?
- entity-framework - 选择实体框架时的 SQL 案例
- python-3.x - 如何使用beautifulsoup 从列表中读取链接?