{"id":13663372,"url":"https://github.com/Cysharp/SlnMerge","last_synced_at":"2025-04-25T13:33:06.648Z","repository":{"id":36293542,"uuid":"223128232","full_name":"Cysharp/SlnMerge","owner":"Cysharp","description":"SlnMerge merges the solution files when generating solution file by Unity Editor.","archived":false,"fork":false,"pushed_at":"2025-03-19T06:43:16.000Z","size":158,"stargazers_count":121,"open_issues_count":0,"forks_count":7,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-05T14:05:15.580Z","etag":null,"topics":["csharp","unity-editor","visualstudio"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cysharp.png","metadata":{"files":{"readme":"README.ja.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-21T08:44:10.000Z","updated_at":"2025-04-04T03:05:31.000Z","dependencies_parsed_at":"2024-01-12T04:49:50.365Z","dependency_job_id":"91677f60-f70b-481a-91bb-0466b346d410","html_url":"https://github.com/Cysharp/SlnMerge","commit_stats":{"total_commits":51,"total_committers":7,"mean_commits":7.285714285714286,"dds":0.4901960784313726,"last_synced_commit":"0bdaffef585cd62838aeb1a22719a77cd197c218"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cysharp%2FSlnMerge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cysharp%2FSlnMerge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cysharp%2FSlnMerge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cysharp%2FSlnMerge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cysharp","download_url":"https://codeload.github.com/Cysharp/SlnMerge/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250825195,"owners_count":21493407,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","unity-editor","visualstudio"],"created_at":"2024-08-02T05:02:25.747Z","updated_at":"2025-04-25T13:33:01.589Z","avatar_url":"https://github.com/Cysharp.png","language":"C#","funding_links":[],"categories":["C\\#","C#"],"sub_categories":[],"readme":"[![GitHub Actions](https://github.com/Cysharp/SlnMerge/workflows/Build-Debug/badge.svg)](https://github.com/Cysharp/SlnMerge/actions) [![Releases](https://img.shields.io/github/release/Cysharp/SlnMerge.svg)](https://github.com/Cysharp/SlnMerge/releases)\n\n# SlnMerge\n\nUnity でソリューションファイル生成時に指定したソリューションをマージするエディタ拡張です。\n\nUnity とは別にサーバーサイドの C# プロジェクトおよびソリューションがあるようなケースで、Unity のソリューションで同時に開くことができるようになります。\n\n![](docs/images/SlnMerge-Image-01.png)\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n## Table of Contents\n\n- [動作確認環境](#%E5%8B%95%E4%BD%9C%E7%A2%BA%E8%AA%8D%E7%92%B0%E5%A2%83)\n- [使い方](#%E4%BD%BF%E3%81%84%E6%96%B9)\n  - [1. SlnMerge をインストールする](#1-slnmerge-%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B)\n    - [方法 1. Unity プロジェクトの `Assets/Editor` 配下に `src/Editor/SlnMerge.cs` をコピーする](#%E6%96%B9%E6%B3%95-1-unity-%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AE-assetseditor-%E9%85%8D%E4%B8%8B%E3%81%AB-srceditorslnmergecs-%E3%82%92%E3%82%B3%E3%83%94%E3%83%BC%E3%81%99%E3%82%8B)\n    - [方法 2. Package Manager からパッケージとして追加する](#%E6%96%B9%E6%B3%95-2-package-manager-%E3%81%8B%E3%82%89%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%A8%E3%81%97%E3%81%A6%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B)\n  - [2. `プロジェクト名.sln.mergesettings` ファイルでマージしたいソリューションを指定する](#2-%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E5%90%8Dslnmergesettings-%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%A7%E3%83%9E%E3%83%BC%E3%82%B8%E3%81%97%E3%81%9F%E3%81%84%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%99%E3%82%8B)\n- [設定](#%E8%A8%AD%E5%AE%9A)\n  - [ソリューションフォルダーに追加する](#%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%83%BC%E3%81%AB%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B)\n- [トラブルシューティング](#%E3%83%88%E3%83%A9%E3%83%96%E3%83%AB%E3%82%B7%E3%83%A5%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0)\n  - [常にソリューションファイルが再生成され、Visual Studioに競合ダイアログが表示される](#%E5%B8%B8%E3%81%AB%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8C%E5%86%8D%E7%94%9F%E6%88%90%E3%81%95%E3%82%8Cvisual-studio%E3%81%AB%E7%AB%B6%E5%90%88%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AD%E3%82%B0%E3%81%8C%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B)\n- [ライセンス](#%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## 動作確認環境\n- Unity 2018.4.5f1 + Windows 10 \u0026 macOS 10.15\n- Microsoft Visual Studio 2019\n- JetBrains Rider 2019.2\n\n## 使い方\n### 1. SlnMerge をインストールする\n#### 方法 1. Unity プロジェクトの `Assets/Editor` 配下に `src/Editor/SlnMerge.cs` をコピーする\nリポジトリをクローンしてファイルをコピーします。\n\n#### 方法 2. Package Manager からパッケージとして追加する\nUnity 2019.1 以降のバージョンを利用している場合、Package Manager を使用して git リポジトリからパッケージをインストールできます。\n\n![](docs/images/SlnMerge-Image-02.png)\n\n```\nhttps://github.com/Cysharp/SlnMerge.git?path=src\n```\n\n### 2. `プロジェクト名.sln.mergesettings` ファイルでマージしたいソリューションを指定する\nUnity によって生成されるソリューションファイル名に .mergesettings をつけた名前の設定ファイルを用意します。\n\n例えば MyUnityApp プロジェクトの場合は MyUnityApp.sln が生成されるので MyUnityApp.sln.mergesettings ファイルを作成します。\n\n```xml\n\u003cSlnMergeSettings\u003e\n    \u003cMergeTargetSolution\u003e..\\MyUnityApp.Server.sln\u003c/MergeTargetSolution\u003e\n\u003c/SlnMergeSettings\u003e\n```\n\n**メモ:** ファイルが未指定の場合には `プロジェクト名.Merge.sln` が読み込まれます\n\n## 設定\nmergesettings ファイルには次の設定項目があります。\n\n- `Disabled`: SlnMerge を無効にするかどうか (デフォルト: `false`)\n- `MergeTargetSolution`: マージしたいソリューションのパス\n- `NestedProjects`: ネストするプロジェクトを指定します。通常ソリューションフォルダーとして利用します\n    - `NestedProject/FolderPath`: ソリューション上のフォルダーパス (存在しない場合は生成。GUIDと排他)\n    - `NestedProject/FolderGuid`: ソリューション上のフォルダーのGUID (パスと排他)\n    - `NestedProject/ProjectName`: プロジェクト名 (GUIDと排他)\n        - ワイルドカードが使用可能です (`?`, `*`)\n    - `NestedProject/ProjectGuid`: プロジェクトGUID (プロジェクト名と排他)\n- `ProjectConflictResolution`: マージ元とマージ先でソリューション内に同名のプロジェクトがある場合の処理方法 (`PreserveAll`, `PreserveUnity`, `PreserveOverlay`)\n    - `PreserveAll`: すべてのプロジェクトを残します (Unity とマージ対象のソリューションのプロジェクトの両方)\n    - `PreserveUnity`: Unity が生成したソリューションのプロジェクトを残します (マージ対象のソリューションのプロジェクトを破棄)\n    - `PreserveOverlay`: 上書きするソリューションのプロジェクトを残します (Unity が生成したソリューションのプロジェクトを破棄)\n\n### ソリューションフォルダーに追加する\n`NestedProjects` 設定を使用するとマージ後にプロジェクトをソリューションフォルダーへ移動できます。ベースのソリューションにソリューションフォルダーが存在しない場合には自動で追加しますが、ソリューションフォルダーの定義が設定ファイルに必要です。\n\n```xml\n\u003cSlnMergeSettings\u003e\n    \u003cMergeTargetSolution\u003e..\\ChatApp.Server.sln\u003c/MergeTargetSolution\u003e\n    \u003cSolutionFolders\u003e\n        \u003c!-- Unity という名前のソリューションフォルダーを GUID とともに定義する --\u003e\n        \u003cSolutionFolder FolderPath=\"Unity\" Guid=\"{55739033-89BA-48AE-B482-843AFD452468}\"/\u003e\n    \u003c/SolutionFolders\u003e\n    \u003cNestedProjects\u003e\n        \u003cNestedProject ProjectName=\"Assembly-CSharp\" FolderPath=\"Unity\" /\u003e\n        \u003cNestedProject ProjectName=\"Assembly-CSharp-Editor\" FolderPath=\"Unity\" /\u003e\n    \u003c/NestedProjects\u003e\n\u003c/SlnMergeSettings\u003e\n```\n\n## トラブルシューティング\n### 常にソリューションファイルが再生成され、Visual Studioに競合ダイアログが表示される\n1. Unity Editor を閉じる\n2. Unity Editor が生成した .csproj と .sln を削除する\n3. プロジェクトを Unity Editor で開きなおす\n\nマージ対象のプロジェクトと Unity が生成するソリューションで同名のプロジェクトが存在する場合、`ProjectConflictResolution` オプションを使用して3つの方法でコンフリクトを解決できます。\n\n- すべてのプロジェクトを維持 (デフォルト)\n- マージ対象のソリューションのプロジェクトを維持\n- Unity が生成したソリューションのプロジェクトを維持\n\n## ライセンス\nMIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCysharp%2FSlnMerge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCysharp%2FSlnMerge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCysharp%2FSlnMerge/lists"}