4

と呼ばれるVisualStudioテンプレートを定義しましたclassDB.cs。クラスのデフォルト名を[projectname]DB.csとして表示したいのですが、[projectname]は現在のプロジェクトの名前です([プロジェクトの作成]ダイアログに入力された名前)。これを達成する方法はありますか?クラスの名前をに設定しようとしまし$safeprojectname$DB.csたが、うまくいきませんでした。

アップデート

プロジェクトテンプレートを変更しましたが、プロジェクトの生成時にこのエラーが発生します

ここに画像の説明を入力してください

これがテンプレートクラスです

namespace $safeprojectname$.Models
{
    public class $safeprojectname$DB : DbContext
    {

    }
}

プロジェクトのクラス

4

2 に答える 2

3

私はこれと同様のエラーと何日も戦ってきました、そして私はついにそれを理解しました。Visual Studioは、.csprojファイルの$をエスケープします。したがって、次のようなノードが作成されます。

<Compile Include="Models\%24safeprojectname%24DB.cs" />

テキストエディタで.csprojファイルを開き、次のように変更します。

<Compile Include="Models\$safeprojectname$DB.cs" />

そして、ファイルを保存します。プロジェクトはリロードされますが、ファイル名を再度エスケープしようとはしません。テンプレートをエクスポートすると、パラメーターが置き換えられていることがわかります。

于 2012-02-27T02:22:20.600 に答える
2

次のようなテンプレートを試してください。

using System;
//...

namespace $rootnamespace$ {
    class $safeitemname$DB {
    }
}

私のために働きます。

正しいテンプレート(C:\Users\[user]\Documents\Visual Studio 2010\Templates\ItemTemplatesWindows 7では下にあるはずです)を更新し、VisualStudioを再起動してください。


編集

上記のコードはアイテムテンプレート用ですが、プロジェクトテンプレートと同じです。MSDNによると、パラメータ$safeitemname$$safeprojectname$パラメータは同じように動作します。

safeitemname
安全でない文字とスペースをすべて削除して、[新しいアイテムの追加]ダイアログボックスでユーザーが指定した名前。

safeprojectname
安全でない文字とスペースをすべて削除して、[新しいプロジェクト]ダイアログボックスでユーザーが指定した名前。

于 2011-11-04T16:17:43.163 に答える