在 Visual Studio 中运行 Service Fabric 应用程序时出现 MSB3021 无法复制文件,找不到部分路径错误

Dec*_*lty 7 .net visual-studio .net-core azure-service-fabric asp.net-core

我有一个包含多个项目的 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 的相同问题。

我已经按照惯例做了好几次了:

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

Code该错误表明它无法找到dir in的部分路径pkg,但我已验证它确实存在。

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

Bar*_*art 10

路径太长。

几乎可以肯定的是,那些失败的道路突然变得太长了。这就是为什么将存储库移动到用户目录的根目录可以解决问题的原因。它还解释了失败看似随机的性质以及一些项目有效而另一些无效的现象;有些路径很长,而另一些则不然。

如果您从输出窗口复制失败的路径并将其粘贴到文件爆炸器中,它们就可以正常工作。

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


Dec*_*lty 1

我无法深入了解这个问题,我已经删除了解决方案目录并从存储库中重新克隆,但它尚未修复它,尽管在同一父目录中。

在最后一次尝试中,我在用户目录的根目录中重新克隆了存储库,从那时起它就工作得很好。

我不知道问题是什么以及为什么解决它。

  • 路径太长。几乎可以肯定的是,那些失败的道路突然变得太长了。这就是为什么将存储库移动到用户目录的根目录可以解决问题的原因。 (2认同)
  • 想象一下每个软件都需要这样的技巧吗? (2认同)