Visual Studio で C# でアプリケーションを開発中に個人的によく思うのが、例えば using System.Linq
とか using System.Threading.Tasks
とか、毎回毎回手で書くの面倒くさいなぁというところです。
using System
とかは最初から記述してあるので、それと同じようにデフォルトの using をカスタマイズできないかなぁと思って見つけた解決策の備忘録です。
項目テンプレート
作成方法
結果的には、「項目テンプレート」というのを使用すると解決します。
項目テンプレートの作成方法については、↓こちらが参考になります。
ただし、こちらに書かれている内容は、あくまで項目テンプレートの作成についてであり、デフォルトの using 設定には触れておりません。
そこで、デフォルトの using の設定ですが、「C# Item Template」のプロジェクトで、以下のように設定を行います。
*.vstemplate
そのまま自分が作ったのをコピペしてみます。ここでは、プロジェクト名を MyTemplate
で作ったものとします。
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:sdk="http://schemas.microsoft.com/developer/vstemplate-sdkextension/2010">
<TemplateData>
<Name>MyTemplate</Name>
<Description>MyTemplate</Description>
<Icon>MyTemplate.ico</Icon>
<TemplateID>bf7d40b0-1363-4e9f-a155-657b5ca5ed03</TemplateID>
<ProjectType>CSharp</ProjectType>
<RequiredFrameworkVersion>2.0</RequiredFrameworkVersion>
<NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
<DefaultName>Class.cs</DefaultName>
<AppliesTo>CSharp</AppliesTo>
</TemplateData>
<TemplateContent>
<!--<References>
<Reference>
<Assembly>System</Assembly>
</Reference>
</References>-->
<ProjectItem ReplaceParameters="true">Class.cs</ProjectItem>
</TemplateContent>
</VSTemplate>
ポイントとしては以下です。
<AppliesTo>CSharp</AppliesTo>
を追加する<References>
~</References>
を削除(コメントアウト)する- これしなくても目的は達成できるが、クラスファイルを作るたびに警告が出てくるようになる
Class.cs
これも、そのまま自分が作ったのをコピペしてみます。
using LanguageExt;
using static LanguageExt.Prelude;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
namespace $rootnamespace$
{
class $safeitemrootname$
{
}
}
ポイントとしては以下です。
- デフォルトで using するものを、単純に列挙するだけ
- ただし、参照サイトにも注意書きがあるが、
Class.cs
のプロパティで、ビルドアクションを「コンパイル」から「コンテンツ」にしないとエラーが出てコンパイルが通らない$rootnamespace$
の部分はどうしても赤線が出てエラーっぽく表示されるが、コンパイルには問題なし
コンパイル
項目テンプレートをそのままコンパイルすると、 zip ファイルが出力されます。
(参考サイトでは VISX で拡張として Visual Studio にインストールする方法が記載されていましたが、私の環境ではどうも拡張のインストールに時間がかかるので、 zip のまま使うようにしています。)
zip ファイルは、私の開発環境では プロジェクトフォルダ\bin\Debug | Release\ItemTemplates\CSharp\1033
に出力されました。
配置
生成された zip を、 Visual Studio のテンプレート置き場である C:\Users\XXXXX\Documents\Visual Studio 2017\Templates\ItemTemplates
に zip のままコピーします。
その後、 Visual Studio を起動すると、「追加」から作成したテンプレートを選択できるようになっています。
もし変更したくなったら、変更後の zip をコピーしなおすと、次回起動時から変更が反映されるみたいです。
コメント