Skip to content

Latest commit

 

History

History
106 lines (79 loc) · 5.79 KB

README.ja.md

File metadata and controls

106 lines (79 loc) · 5.79 KB

CsprojModifier

CsprojModifier は Unity Editor が .csproj を生成する際に追加の処理を行うことで、Visual Studio や Rider のような IDE での開発体験を向上させます。

CsprojModifier は次の特徴を備えています:

  • 生成された .csproj に追加のプロジェクトを Import 要素で追加する
  • 生成された .csproj に Analzyer の参照を追加する
    • 2020.2 以降で Rider または Visual Studio Code を利用している場合には無効

Table of Contents

Works with

  • Unity Editor 2019.4 (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 を使用できます。

<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 としてプロジェクトに追加されていることを期待しているため、これによってうまく機能するようになります。

追加のプロジェクトファイル (.props, .targets) の内容を直接 .csproj に追加する

挿入位置として 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>

生成された .csproj に Analzyer の参照を追加する

注意: 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 アセットラベルをライブラリに付与する

License

MIT License