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

Posted

技术标签:

【中文标题】MSB3021 在 Visual Studio 中运行 Service Fabric 应用时无法复制文件找不到部分路径错误【英文标题】:MSB3021 Unable to copy file could not find part of path error when running Service Fabric app in Visual Studio 【发布时间】:2020-01-26 13:45:38 【问题描述】:

我有一个包含多个项目的 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.json,还有另外两个错误报告了相同的问题,并且有 30 个警告说明了随机 dll 的相同问题。

像往常一样,我已经做了好几次了:

    删除所有binobjpkg 目录 已停止本地集群 重新启动 Visual Studio 重启机器 在单独的目录中签出 repo

错误指出它在pkg 中找不到Code 目录的部分路径,但我已经验证它确实存在。

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

【问题讨论】:

【参考方案1】:

路径太长。

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

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

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

【讨论】:

谢谢,我刚刚遇到了类似的问题,就是网站项目中的几个图像文件的路径太长。缩短文件名允许发布项目。【参考方案2】:

我同意 Bart 提供的声明,PATH TOO LONG。

对于遇到此问题的任何人,请尝试将您的代码库/repo 克隆到 更靠近根目录的文件夹中,您会发现它像魔术一样工作

当然错误并不直观,但问题在于长度限制。

【讨论】:

拯救生命的解决方案!!【参考方案3】:

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

在最后一次尝试中,我在我的用户目录的根目录中重新克隆了 repo,从那时起它就可以正常工作了。

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

【讨论】:

路径太长。几乎可以肯定,那些失败的路径突然变得太长了。这就是为什么将 repo 移动到用户目录的根目录就可以了。 想象一下每个软件都需要这样的技巧吗?【参考方案4】:

只是想插话,我遇到了同样的错误,根据之前的答案,我从 Visual Studio 建议的 C:\Users\myusername\Source\Repos 位置删除了 repo 并将其重新克隆到 c :\tfs。该解决方案建立在之后的第一次尝试之上。

这是在 Visual Studio Enterprise 2019 版本 16.6.5 上。

【讨论】:

【参考方案5】:

就我而言:

    删除对其他项目的引用 用点1项目的ddl删除Bin文件夹

重新分配项目引用,编译发布

【讨论】:

以上是关于MSB3021 在 Visual Studio 中运行 Service Fabric 应用时无法复制文件找不到部分路径错误的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2015 中的错误:错误 MSB4166:子节点“3”过早退出。关机

Visual Studio:error MSB8020

错误 MSB3073:命令“grunt dist”在 Visual Studio 2017 中以代码 3 退出

如何在仍然使用 sysnative 虚拟文件夹的同时使用 Visual Studio 的 Exec 代码 -1 避免错误 MSB3073

visual studio 2019 error MSB3073 extied with code 0

关于Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法