Core.dll)。.csproj 需鎖定,導致「另一人已鎖定」無法提交新增檔案。.csproj 是 XML 格式的專案檔,**每次新增/移除/重命名 .cs 檔案都會修改它**。SVN 預設不支援自動合併二進位/複雜 XML,且團隊習慣「修改前先鎖定」,造成序列化衝突。
svn:needs-lock 屬性**不要**加在 .csproj 上。.csproj 衝突通常易解:保留雙方新增的 <Compile Include=...> 節點)。**原則**:.csproj 是文字檔,**可合併**,不需獨佔鎖定。
Core.Domain, Core.Service, Core.Repository),各自獨立 .csproj。.csproj,衝突大幅減少。遷移至 <Project Sdk="Microsoft.NET.Sdk"> 格式,啟用隱含編譯:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
<!-- 無需顯式列出每個 .cs 檔,資料夾下所有 *.cs 自動編譯 -->
</Project>
**優點**:新增/刪除 .cs 檔**完全不修改 .csproj**,衝突歸零。
**前提**:.NET Core / .NET 5+ / .NET Framework 4.7.2+ (需 MSBuild 15+)。
.csproj 結構,新功能透過 partial class 在固定檔案擴充,或使用 T4/Source Generator 產生程式碼,避免頻繁新增檔案。feature/xxx 分支,完成後 PR 合併至 develop。.csproj 變更,確保無遺漏/重複引用。核心在於**認清 .csproj 可合併**,放棄獨佔鎖定習慣;長期看,遷移至 **SDK Style 專案格式** 或 **拆分模組** 徹底消除衝突源頭。