首页 > 解决方案 > 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.dllruntimeconfig.json30 个警告,说明了随机 dll 的相同问题。

我已经做了几次通常的事情:

  1. 删除所有bin,objpkg目录
  2. 停止本地集群
  3. 重新启动 Visual Studio
  4. 重启机器
  5. 在单独的目录中签出 repo

该错误指出它无法找到Codedir 中的部分路径pkg,但我已经验证它确实存在。

奇怪的是,这只影响了几个项目中的一个。我在这里遗漏了什么明显的东西吗?

标签: .netvisual-studioasp.net-core.net-coreazure-service-fabric

解决方案


路径太长。

几乎可以肯定,那些失败的路径突然变得太长了。这就是为什么将 repo 移动到用户目录的根目录就可以了。它还解释了失败看似随机的性质,以及一些项目成功而另一些项目失败的现象;有些路径很长,而另一些则没有。

如果您从输出窗口复制失败的路径并将它们粘贴到 File Exploder,它们就可以正常工作。

但是,如果您从命令行或批处理文件中对它们进行试验,它们将失败。我会花钱解决这个问题。


推荐阅读