我发现自己浪费了很多时间重命名+包括我的Xamarin.Forms项目中的文件,因为仅在文件中从大写到小写(或反之亦然)的任何更改都不会导致项目文件中发生任何更改,所以我有几个问题:
.csproj
中是良好实践吗?如果不是,这种情况下什么是最好的?我必须包含 2000 多张图像(Android + iOS 及其各自的尺寸)。因此,我开始将文件复制到正确的目录并将它们包含在移动项目中,当我已经将文件包含在项目中并且某些文件具有我之前没有注意到的大写字母时,问题就出现了,所以我进行了更改手动处理所有文件,当我注意到这些更改没有反映在解决方案资源管理器/项目文件中时,我手动尝试并收到此错误:
编辑:这个问题似乎在 VS2019 v.16.1 左右已经“解决”了,但前提是文件没有在外部重命名。自从我这样做以来,我收到了这个警告。这回答了我的第一个问题。
我发现的一个解决方案是重命名:
Foo.png > fooo.png > foo.png
string filepath = @"C:\Users\(...)";
DirectoryInfo d = new DirectoryInfo(filepath);
foreach (var file in d.GetFiles("*.png", SearchOption.AllDirectories))
{
if (file.Name.Any(char.IsUpper))
{
File.Move(file.FullName, file.FullName.Replace(file.Name, file.Name.ToLower()));
}
}
它的作用基本上是创建一个新文件,但使用小写,这意味着我仍然必须删除旧的引用
并包含新文件。这似乎不对,因为简单的重命名就可以了。 我的选择是什么?
总的来说,这意味着您的请求在 Windows 中不自然。也许有人可以为您提供一些技巧,但如果您想快速解决此问题,请将项目移至 Mac,在操作系统级别上,这会有所不同,在 Visual Studio for Mac 中执行操作,然后您可以继续使用 Windows如果你愿意的话。
编辑:实际上我可以告诉你一个 Windows 的技巧。首先将文件重命名为您想要的任何名称(例如在末尾添加 1),然后将其重命名为所需的文件名。它将正常工作。
在 Visual Studio 2019 中 - 在解决方案资源管理器中右键单击项目名称 -> 选择“编辑项目文件”
在 ItemGroup 下找到有问题的文件,您可以删除该行或编辑文件名。我通过删除文件没有产生任何副作用,因为我知道我在做什么,您的里程可能会有所不同。
如果您想返回,请在记事本中剪切并粘贴删除或重命名,Ctrl-z 也可以:)
For i = 0 To (filesInZIP.Count - 1)
FileSystem.Rename(filesInZIP(i), filesInZIP(i) & ".txt")
FileSystem.Rename(filesInZIP(i) & ".txt", filesInZIP(i).ToLower)
Next
filesInZIP 是包含要重命名的文件的(字符串)列表。