无法复制文件,找不到路径的一部分

Posted

技术标签:

【中文标题】无法复制文件,找不到路径的一部分【英文标题】:Unable to copy file, Could not find a part of the path 【发布时间】:2020-09-09 06:34:11 【问题描述】:

我的网站有本地化(多语言)

我为每种文化使用 ASP.NET 资源文件,例如:

Controllers.UserProfileController.en-ca.resx Controllers.UserProfileController.es-us.resx Controllers.UserProfileController.pt-br.resx

等等。

我在 Startup.cs 中也有这一行

services.AddLocalization(options => options.ResourcesPath = "ResourcesDirectoryFolderName");

当我构建和发布站点时,在 bin 文件夹中它为每种文化创建一个文件夹,例如:

C:\User\Documents\SchoolApp\School.API\bin\Release\netcoreapp3.1\en-ca C:\User\Documents\SchoolApp\School.API\bin\Release\netcoreapp3.1\es-us C:\User\Documents\SchoolApp\School.API\bin\Release\netcoreapp3.1\pt-BR

在每个文件夹中,我都有一些 DLL 文件。这很好。

当我使用 Azure 管道编译/构建/发布应用程序 (CI/CD) 时出现问题。它正在抛出错误:

##[错误] /usr/share/dotnet/sdk/3.1.401/Microsoft.Common.CurrentVersion.targets(4364,5): 错误 MSB3021:无法复制文件 “/home/vsts/work/1/s/School.Services/bin/Release/netcoreapp3.1/pt-br/School.Services.resources.dll” 到“bin/Release/netcoreapp3.1/pt-br/School.Services.resources.dll”。 找不到路径的一部分 '/home/vsts/work/1/s/School.API/bin/Release/netcoreapp3.1/pt-br/School.Services.resources.dll'。

如果在本地很好的话。当我在本地主机上构建或发布时,我没有收到错误。这发生在 Azure Pipelines 上。

这只发生在pt-br。对于其他文化,我没有收到错误。在添加 pt-br 之前,我没有收到任何错误。

注意pt-br(小写)用于资源文件名,但是当在bin文件夹中生成文件夹时,它的名称为pt-BR(大写BR)。这种区分大小写可能是问题所在吗?也许在复制文件时,Azure Pipelines 正在寻找文件夹名称pt-br,但实际上是系统生成的文件夹名称pt-BR?为什么其他文化没有遇到这个问题,而只有pt-br

我按照这里的说明构建了我的多语言应用程序:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization?view=aspnetcore-3.1

我该如何解决?

【问题讨论】:

您好,请问这个问题呢?下面的答案是否解决了您的问题,如果是,您可以 Accept it as an Answer ,这样它可以帮助遇到相同问题的其他社区成员,我们可以存档这个帖子,谢谢。 【参考方案1】:

这种区分大小写会是问题吗?

Linux 中与复制相关的命令区分大小写。 (您正在 Ubuntu 机器上运行管道)。所以我同意case sensitivity 可能是问题所在。

看起来您的School.API 项目依赖于School.Services 项目,因此您需要检查这两个项目以了解该文件夹生成为pt-BR 的原因。

您应该检查项目文件和这两个项目的资源文件。另外,作为一种快速解决方法,我建议您可以将资源文件重命名为Controllers.UserProfileController.pt-BR.resx。见Supported Culture Codes ,pt-BR是代表Portuguese (Brazil)的原始格式。

【讨论】:

以上是关于无法复制文件,找不到路径的一部分的主要内容,如果未能解决你的问题,请参考以下文章

为啥复制东西到U盘总显示;找不到指定文件 请确定指定的路径及文件名是不是正确 急急急急!!!

无法弄清楚为什么我的部分复制命令有效,有些则不然

在项目中复制一个cshtml文件 ,改名字,上传后无法浏览

安装VMware提示:安装程序无法复制vmci.sys

输入的路径目录无法写入文件该怎么办?

C++ Windows 驱动程序 MSB3030 无法复制文件 '' 因为找不到