CsprojModifier は Unity Editor が .csproj を生成する際に追加の処理を行うことで、Visual Studio や Rider のような IDE での開発体験を向上させます。
CsprojModifier は次の特徴を備えています:
- 生成された .csproj に追加のプロジェクトを
Import
要素で追加する - 生成された .csproj に Analzyer の参照を追加する
- 2020.2 以降で Rider または Visual Studio Code を利用している場合には無効
- Unity Editor 2019.4 (LTS) or later
- Visual Studio 2019 or Rider
Package Manager から git 経由でインストールします。
https://github.com/Cysharp/CsprojModifier.git?path=src/CsprojModifier/Assets/CsprojModifier
任意の追加のプロジェクトファイル (.props や .target) を生成された .csproj に Import
要素を使用して追加します。これによりプロジェクトにファイルを追加したり、参照を追加したりが可能になります。
注意: .csproj は Visual Studio や Rider のような IDE でのみ使用され、 Unity Editor での実際のビルドには使用されません
例えば、次のような YourAwesomeApp.DesignTime.props
というファイルを作成し、インポートすることで BannedApiAnalyzer を使用できます。
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Analyzer Include="Assets/Plugins/Editor/Analyzers/Microsoft.CodeAnalysis.BannedApiAnalyzers.dll" />
<Analyzer Include="Assets/Plugins/Editor/Analyzers/Microsoft.CodeAnalysis.CSharp.BannedApiAnalyzers.dll" />
</ItemGroup>
<ItemGroup>
<AdditionalFiles Include="$(ProjectDir)\BannedSymbols.txt" />
</ItemGroup>
</Project>
BannedApiAnalyzer は BannedSymbols.txt が AdditionalFiles
としてプロジェクトに追加されていることを期待しているため、これによってうまく機能するようになります。
挿入位置として Append Content
または Prepend Content
を指定した場合、CsProjModifier は XML を読み込んで要素を直接 .csproj に注入します。
<!-- * Example: `Prepend: MyApp.Unity.props` -->
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--MyApp.Unity.props:HASH-->
<Import Project="MyApp.Unity.props" />
<!-- .csproj content generated by Unity Editor -->
<!-- ... -->
</Project>
<!-- * Example: `Prepend Content: MyApp.Unity.props` -->
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--MyApp.Unity.props:HASH-->
<ItemGroup>
<!-- ... -->
<!-- ... -->
<!-- ... -->
</ItemGroup>
<!-- .csproj content generated by Unity Editor -->
<!-- ... -->
</Project>
注意: Rider または Visual Studio Code を Unity 2020.2 以降で使用している場合にはこの機能は無効となります。IDE での Roslyn Analyzer は Unity Editor によってサポートされます。
Roslyn Analyzer は Unity 2020.2 以降でサポートされました。しかしながら、現在 Roslyn Analyzer は .csproj に追加されず、コンパイル時にのみ使用されます。
この拡張は Analyzer
要素を .csproj プロジェクトファイルが生成される際に追加します。その結果、Visual Studio でコード編集時にも Roslyn Analyzer の恩恵を受けることができます。(もちろん、2020.2 以前にも対応します)
Unity 2020.2 と同様の方法で Roslyn Analyzer をプロジェクトに追加します
- Roslyn Analyzer ライブラリを追加する
- Plugin インスペクターですべてのターゲットプラットフォームからチェックを外す
RoslynAnalyzer
アセットラベルをライブラリに付与する
MIT License