Visual Studio 發布網站常見錯誤:Duplicate Files 衝突解法一次看懂!
在使用 Visual Studio 發布網站專案時,出現以下錯誤訊息:
NETSDK1152: Found multiple publish output files with the same relative path.
Generate error for duplicate files in publish output
別緊張,這其實是部署過程中有重複檔案名稱衝突的常見狀況。以下整理多種實用的排查與解法,讓你迅速恢復正常部署流程!
❓ 錯誤成因解析
這個錯誤通常由以下幾種狀況導致:
- 🔁 不同資料夾有相同檔名(如
Scripts\common.js
和scripts\common.js
) - 🔗 專案中重複引用相同的檔案
- 📦 第三方套件與自己手動加入的檔案產生衝突
- 🔡 路徑大小寫不同但內容相同(Windows 不區分,但 .NET 發佈工具會)
.csproj
檔案是否有重複定義
🛠 解法一:檢查 開啟 .csproj
檔案並搜尋 <Content>
或 <None>
標籤,檢查是否有類似以下重複定義:
<ItemGroup>
<Content Include="scripts\common.js" />
<Content Include="Scripts\common.js" />
</ItemGroup>
✅ 解法:移除重複或只保留一個版本。
🛠 解法二:加入屬性略過重複警告
若確認內容無誤,且重複檔案不影響運作,可加入以下屬性來略過警告:
<PropertyGroup>
<EnableDuplicatePublishWarning>false</EnableDuplicatePublishWarning>
</PropertyGroup>
🛠 解法三:排除指定檔案避免衝突
如果你已經知道哪個檔案不需要輸出,可以加上排除設定:
<ItemGroup>
<Content Remove="wwwroot\scripts\common.js" />
</ItemGroup>
🛠 解法四:清理輸出目錄再重新部署
有時候是舊檔案殘留導致衝突,可以:
- 手動刪除
bin/
與obj/
資料夾 - 在發佈設定中勾選「刪除目標位置的舊檔案」
🎯 小提醒:保持命名一致性
由於 Windows 不區分大小寫,但 Git 和 .NET 發佈工具是會的,建議:
- 命名保持一致,最好全部使用小寫
- 資源放置盡可能集中於
wwwroot/
或單一資料夾中
✅ 結語
出現 duplicate files 錯誤並不可怕,只要有系統地檢查 .csproj
設定與發佈選項,就能輕鬆排除問題!
如果你覺得這篇實用,也歡迎收藏起來或分享給有遇到相同錯誤的朋友~