{"id":18283057,"url":"https://github.com/cysharp/csprojmodifier","last_synced_at":"2025-04-04T12:05:51.236Z","repository":{"id":49384580,"uuid":"365136343","full_name":"Cysharp/CsprojModifier","owner":"Cysharp","description":"CsprojModifier performs additional processing when Unity Editor generates the .csproj.","archived":false,"fork":false,"pushed_at":"2025-03-19T06:29:11.000Z","size":125,"stargazers_count":189,"open_issues_count":2,"forks_count":25,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-28T11:06:12.774Z","etag":null,"topics":["c-sharp","unity","visualstudio"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-07T06:29:49.000Z","updated_at":"2025-03-27T23:26:36.000Z","dependencies_parsed_at":"2024-01-14T17:03:36.158Z","dependency_job_id":"61822c27-d024-4830-ae3c-973946f90747","html_url":"https://github.com/Cysharp/CsprojModifier","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cysharp%2FCsprojModifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cysharp%2FCsprojModifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cysharp%2FCsprojModifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cysharp%2FCsprojModifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cysharp","download_url":"https://codeload.github.com/Cysharp/CsprojModifier/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247174387,"owners_count":20896075,"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":["c-sharp","unity","visualstudio"],"created_at":"2024-11-05T13:07:09.191Z","updated_at":"2025-04-04T12:05:51.216Z","avatar_url":"https://github.com/Cysharp.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CsprojModifier\n\nCsprojModifier は Unity Editor が .csproj を生成する際に追加の処理を行うことで、Visual Studio や Rider のような IDE での開発体験を向上させます。\n\nCsprojModifier は次の特徴を備えています:\n\n- 生成された .csproj に追加のプロジェクトを `Import` 要素で追加する\n- 生成された .csproj に Analzyer の参照を追加する\n  - 2020.2 以降で Visual Studio, Rider または Visual Studio Code を利用している場合には無効\n\n![](docs/images/Screen-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- [Works with](#works-with)\n- [Install](#install)\n- [Features](#features)\n  - [生成された .csproj に追加のプロジェクトを `Import` 要素で追加する](#%E7%94%9F%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F-csproj-%E3%81%AB%E8%BF%BD%E5%8A%A0%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92-import-%E8%A6%81%E7%B4%A0%E3%81%A7%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B)\n    - [例](#%E4%BE%8B)\n    - [追加のプロジェクトファイル (.props, .targets) の内容を直接 .csproj に追加する](#%E8%BF%BD%E5%8A%A0%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB-props-targets-%E3%81%AE%E5%86%85%E5%AE%B9%E3%82%92%E7%9B%B4%E6%8E%A5-csproj-%E3%81%AB%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B)\n  - [生成された .csproj に Analzyer の参照を追加する](#%E7%94%9F%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F-csproj-%E3%81%AB-analzyer-%E3%81%AE%E5%8F%82%E7%85%A7%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B)\n    - [使用方法](#%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95)\n- [License](#license)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## Works with\n- Unity Editor 2022.3 (LTS) or later\n- Visual Studio 2019 or Rider\n\n## Install\nPackage Manager から git 経由でインストールします。\n\n```\nhttps://github.com/Cysharp/CsprojModifier.git?path=src/CsprojModifier/Assets/CsprojModifier\n```\n\n## Features\n\n### 生成された .csproj に追加のプロジェクトを `Import` 要素で追加する\n任意の追加のプロジェクトファイル (.props や .target) を生成された .csproj に `Import` 要素を使用して追加します。これによりプロジェクトにファイルを追加したり、参照を追加したりが可能になります。\n\n**注意:** .csproj は Visual Studio や Rider のような IDE でのみ使用され、 Unity Editor での実際のビルドには使用されません\n\n#### 例\n例えば、次のような `YourAwesomeApp.DesignTime.props` というファイルを作成し、インポートすることで [BannedApiAnalyzer](https://github.com/dotnet/roslyn-analyzers/tree/main/src/Microsoft.CodeAnalysis.BannedApiAnalyzers) を使用できます。\n\n```xml\n\u003cProject xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\"\u003e\n  \u003cItemGroup\u003e\n    \u003cAnalyzer Include=\"Assets/Plugins/Editor/Analyzers/Microsoft.CodeAnalysis.BannedApiAnalyzers.dll\" /\u003e\n    \u003cAnalyzer Include=\"Assets/Plugins/Editor/Analyzers/Microsoft.CodeAnalysis.CSharp.BannedApiAnalyzers.dll\" /\u003e\n  \u003c/ItemGroup\u003e\n  \u003cItemGroup\u003e\n    \u003cAdditionalFiles Include=\"$(ProjectDir)\\BannedSymbols.txt\" /\u003e\n  \u003c/ItemGroup\u003e\n\u003c/Project\u003e\n```\n\n[BannedApiAnalyzer](https://github.com/dotnet/roslyn-analyzers/tree/main/src/Microsoft.CodeAnalysis.BannedApiAnalyzers) は BannedSymbols.txt が `AdditionalFiles` としてプロジェクトに追加されていることを期待しているため、これによってうまく機能するようになります。\n\n#### 追加のプロジェクトファイル (.props, .targets) の内容を直接 .csproj に追加する\n挿入位置として `Append Content` または `Prepend Content` を指定した場合、CsProjModifier は XML を読み込んで要素を直接 .csproj に注入します。\n\n```xml\n\u003c!-- * Example: `Prepend: MyApp.Unity.props` --\u003e\n\u003cProject ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\"\u003e\n  \u003c!--MyApp.Unity.props:HASH--\u003e\n  \u003cImport Project=\"MyApp.Unity.props\" /\u003e\n\n  \u003c!-- .csproj content generated by Unity Editor --\u003e\n  \u003c!-- ... --\u003e\n\u003c/Project\u003e\n\n\u003c!-- * Example: `Prepend Content: MyApp.Unity.props` --\u003e\n\u003cProject ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\"\u003e\n  \u003c!--MyApp.Unity.props:HASH--\u003e\n  \u003cItemGroup\u003e\n    \u003c!-- ... --\u003e\n    \u003c!-- ... --\u003e\n    \u003c!-- ... --\u003e\n  \u003c/ItemGroup\u003e\n\n  \u003c!-- .csproj content generated by Unity Editor --\u003e\n  \u003c!-- ... --\u003e\n\u003c/Project\u003e\n```\n\n### 生成された .csproj に Analzyer の参照を追加する\n**注意**: Rider または Visual Studio Code を Unity 2020.2 以降で使用している場合にはこの機能は無効となります。IDE での Roslyn Analyzer は Unity Editor によってサポートされます。\n\n[Roslyn Analyzer は Unity 2020.2 以降でサポートされました](https://docs.unity3d.com/Manual/roslyn-analyzers.html)。しかしながら、現在 Roslyn Analyzer は .csproj に追加されず、コンパイル時にのみ使用されます。\n\nこの拡張は `Analyzer` 要素を .csproj プロジェクトファイルが生成される際に追加します。その結果、Visual Studio でコード編集時にも Roslyn Analyzer の恩恵を受けることができます。(もちろん、2020.2 以前にも対応します)\n\n#### 使用方法\n[Unity 2020.2 と同様の方法で Roslyn Analyzer をプロジェクトに追加します](https://docs.unity3d.com/Manual/roslyn-analyzers.html)\n\n- Roslyn Analyzer ライブラリを追加する\n- Plugin インスペクターですべてのターゲットプラットフォームからチェックを外す\n- `RoslynAnalyzer` アセットラベルをライブラリに付与する\n\n## License\nMIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcysharp%2Fcsprojmodifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcysharp%2Fcsprojmodifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcysharp%2Fcsprojmodifier/lists"}