Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cysharp/csprojmodifier
CsprojModifier performs additional processing when Unity Editor generates the .csproj.
https://github.com/cysharp/csprojmodifier
c-sharp unity visualstudio
Last synced: 1 day ago
JSON representation
CsprojModifier performs additional processing when Unity Editor generates the .csproj.
- Host: GitHub
- URL: https://github.com/cysharp/csprojmodifier
- Owner: Cysharp
- Created: 2021-05-07T06:29:49.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-11-26T05:30:50.000Z (2 months ago)
- Last Synced: 2025-01-18T22:40:21.746Z (8 days ago)
- Topics: c-sharp, unity, visualstudio
- Language: C#
- Homepage:
- Size: 111 KB
- Stars: 168
- Watchers: 8
- Forks: 19
- Open Issues: 0
-
Metadata Files:
- Readme: README.ja.md
- License: LICENSE
Awesome Lists containing this project
README
# CsprojModifier
CsprojModifier は Unity Editor が .csproj を生成する際に追加の処理を行うことで、Visual Studio や Rider のような IDE での開発体験を向上させます。
CsprojModifier は次の特徴を備えています:
- 生成された .csproj に追加のプロジェクトを `Import` 要素で追加する
- 生成された .csproj に Analzyer の参照を追加する
- 2020.2 以降で Visual Studio, Rider または Visual Studio Code を利用している場合には無効![](docs/images/Screen-01.png)
## Table of Contents
- [Works with](#works-with)
- [Install](#install)
- [Features](#features)
- [生成された .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)
- [例](#%E4%BE%8B)
- [追加のプロジェクトファイル (.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)
- [生成された .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)
- [使用方法](#%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95)
- [License](#license)## Works with
- Unity Editor 2022.3 (LTS) or later
- Visual Studio 2019 or Rider## Install
Package Manager から git 経由でインストールします。```
https://github.com/Cysharp/CsprojModifier.git?path=src/CsprojModifier/Assets/CsprojModifier
```## Features
### 生成された .csproj に追加のプロジェクトを `Import` 要素で追加する
任意の追加のプロジェクトファイル (.props や .target) を生成された .csproj に `Import` 要素を使用して追加します。これによりプロジェクトにファイルを追加したり、参照を追加したりが可能になります。**注意:** .csproj は Visual Studio や Rider のような IDE でのみ使用され、 Unity Editor での実際のビルドには使用されません
#### 例
例えば、次のような `YourAwesomeApp.DesignTime.props` というファイルを作成し、インポートすることで [BannedApiAnalyzer](https://github.com/dotnet/roslyn-analyzers/tree/main/src/Microsoft.CodeAnalysis.BannedApiAnalyzers) を使用できます。```xml
```
[BannedApiAnalyzer](https://github.com/dotnet/roslyn-analyzers/tree/main/src/Microsoft.CodeAnalysis.BannedApiAnalyzers) は BannedSymbols.txt が `AdditionalFiles` としてプロジェクトに追加されていることを期待しているため、これによってうまく機能するようになります。
#### 追加のプロジェクトファイル (.props, .targets) の内容を直接 .csproj に追加する
挿入位置として `Append Content` または `Prepend Content` を指定した場合、CsProjModifier は XML を読み込んで要素を直接 .csproj に注入します。```xml
```
### 生成された .csproj に Analzyer の参照を追加する
**注意**: Rider または Visual Studio Code を Unity 2020.2 以降で使用している場合にはこの機能は無効となります。IDE での Roslyn Analyzer は Unity Editor によってサポートされます。[Roslyn Analyzer は Unity 2020.2 以降でサポートされました](https://docs.unity3d.com/Manual/roslyn-analyzers.html)。しかしながら、現在 Roslyn Analyzer は .csproj に追加されず、コンパイル時にのみ使用されます。
この拡張は `Analyzer` 要素を .csproj プロジェクトファイルが生成される際に追加します。その結果、Visual Studio でコード編集時にも Roslyn Analyzer の恩恵を受けることができます。(もちろん、2020.2 以前にも対応します)
#### 使用方法
[Unity 2020.2 と同様の方法で Roslyn Analyzer をプロジェクトに追加します](https://docs.unity3d.com/Manual/roslyn-analyzers.html)- Roslyn Analyzer ライブラリを追加する
- Plugin インスペクターですべてのターゲットプラットフォームからチェックを外す
- `RoslynAnalyzer` アセットラベルをライブラリに付与する## License
MIT License