您的瀏覽器不支援JavaScript功能,若網頁功能無法正常使用時,請開啟瀏覽器JavaScript狀態
Antfire 的生活雜記
Skip
    banner

    Visual Studio 發布網站常見錯誤:[找到多個具有相同相對路徑的發佈輸出檔案] 解法一次看懂!

    Visual Studio 發布網站常見錯誤:[找到多個具有相同相對路徑的發佈輸出檔案] 解法一次看懂!

    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.jsscripts\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>

    🛠 解法四:清理輸出目錄再重新部署

    有時候是舊檔案殘留導致衝突,可以:

    1. 手動刪除 bin/obj/ 資料夾
    2. 在發佈設定中勾選「刪除目標位置的舊檔案」

    🎯 小提醒:保持命名一致性

    由於 Windows 不區分大小寫,但 Git 和 .NET 發佈工具是會的,建議:

    • 命名保持一致,最好全部使用小寫
    • 資源放置盡可能集中於 wwwroot/ 或單一資料夾中

    ✅ 結語

    出現 duplicate files 錯誤並不可怕,只要有系統地檢查 .csproj 設定與發佈選項,就能輕鬆排除問題!

    如果你覺得這篇實用,也歡迎收藏起來或分享給有遇到相同錯誤的朋友~