如題,在開發.NET MAUI專案時我最害怕遇到建置失敗,但我也算是練就了一身用MAC開發VS專案能夠應對的千奇百怪方式,在今天遇到了卡我一上午的錯誤:
Error: One or more invalid file names were detected. File names must be lowercase, start and end with a letter character, and contain only alphanumeric characters or underscores: ....
指出了這個專案辨識到了不符合要求的檔案名稱。
發生這個錯誤前,我為了要在專案中加入icon,就利用Finder去把我下載到電腦中的icon移到MAUI中的Resources/Images資料夾中,而剛好的所有icon名稱剛好都是大寫的XD也怪我自己懶得去改名稱,所以我一一把所有icon名稱改成小寫再去執行一遍,結果!!這個錯誤依然存在,但我也不以為意,覺得重開整個VS或是清除專案重建就好了吧?結果到最後我把重開機、刪除bin、obj資料夾都嘗試了一遍,這個錯誤就像蟑螂一樣打不死...
最後我決定備份icon後刪除整個Image資料夾,並利用Finder重建資料夾,好的^^沒有用^^!!這個錯誤還是不斷跑出來~~
在最後的最後,我終於想到可以用終端機去看我的資料夾到底哪裡還存在不符合的檔案名稱,由於一切的錯誤都是從Images資料夾開始的,所以我直接去檢查它:
我查詢了一下.DS_store是什麼(參考此文章):
所以最後我決定不使用Finder進行資料夾重建,用VS IDE進行重建即可,當然也就沒有自動生成.DS_store的問題了,最後專案也能夠順利建置。
但以上是一個治標不治本的方式,最好的方式是在MAUI中設定排除.DS_store檔案(參考此文章):
<MauiImage Include="Resources\Images\* />
<MauiImage Include="Resources\Images\*svg />
<MauiImage Include="Resources\Images\*png />
<MauiImage Include="Resources\Images\*jpg />
當然也有更極端的方式處理.DS_store檔案,在此文章有一段教學如何阻止 .DS_Store的生成,但我個人是不建議這樣做,所以就當給大家參考看看囉
以上,祝大家開發MAUI專案的過程都順利,有問題歡迎指正!