2009-08-03 9 views
0

"Public Class"という名前のVisual Studio用の独自のクラステンプレートを作成しようとしています。私のVisual Studio 2008テンプレートで何が問題になっていますか?

私は手紙の方がかなり手厚いですが、「新しい項目の追加」ダイアログの「テンプレート」セクションにテンプレートが表示されることはありません。

私は、次のWindows XPディレクトリにPublicClass.zipを置い:

C:\ DocumentsとSettingsは、Visual Studio 2008 \テンプレート\ ItemTemplates \ビジュアルC#\マイドキュメント\マイユーザー名\。

公開Class.zipは、以下のファイルが含まれています

  1. PublicClass.cs

PublicClass.csが含まれていPublicClass.ico

  • PublicClass.vstemplate ...

    using System; 
    using System.Collections.Generic; 
    $if$ ($targetframeworkversion$ == 3.5)using System.Linq; 
    $endif$using System.Text; 
    
    namespace Pse.$projectname$ 
    { 
        public class $safeitemname$ 
        { 
        } 
    } 
    

    PublicClass.vstemplateが含まれています...

    <?xml version="1.0" encoding="utf-8"?> 
    <VSTemplate 
        Type="Item" 
        Version="1.0.0" 
        xmlns="http://schemas.microsoft.com/developer/vstemplate/2005"> 
        <TemplateData> 
        <Name>Public Class</Name> 
        <Description>An empty class declaration with access modifier = public and namespace = Pse.NameOfProject</Description> 
        <Icon>PublicClass.ico</Icon> 
        <ProjectType>CSharp</ProjectType> 
        <DefaultName>PublicClass.cs</DefaultName> 
        </TemplateData> 
        <TemplateContent> 
        <ProjectItem ReplaceParameters="true">PublicClass.cs</ProjectItem> 
        </TemplateContent> 
    </VSTemplate> 
    

    私は、スタジオを立ち上げ、私のプロジェクトに新しい項目を追加しようとしましたが、私のテンプレートはどこにも見つかりませんでした。だから、私はコマンドラインから... ...

    devenv.exe /installvstemplates 
    

    を呼び出すことだったthis stackoverflow questionのアドバイスを、従ったが、やったことすべては(組み込みのものを含む)すべてのテンプレートが消えるようでした。恐慌の少しの後、私は最終的にコマンドを何度か実行した後にそれらを戻しましたが、それは明らかに私の答えではありませんでした。

    私の手技に何か問題がある場合は、私を助けてもらえますか?

    ありがとうございます。

    EDIT:

    私は、ファイル/エクスポートテンプレートを(プリートにより示唆されるように)を使用する場合、テンプレートマイテンプレートに表示さんが、パラメータが適切に交換されていません。だから、唯一の$projectname$$targetframeworkversion$が適切に交換する

    using System; 
    using System.Collections.Generic; 
    $if$ (3.5 == 3.5)using System.Linq; 
    $endif$using System.Text; 
    
    namespace Pse.$projectname$ 
    { 
        public class PublicClass1 
        { 
        } 
    } 
    

    :私は新しい「パブリック・クラス」を挿入した場合

    が、これは私が得るものです。 $if$ステートメントまたは$projectname$を正しく処理していません。 (私も$safeprojectname$を使用してみましたが、それは何の違いを行っていない。)

    これは間違いなく私の人生がもう少し便利にしようとすると、全く逆の効果を持っていたこれらのケースの一つです:)

  • +0

    あなたはVSを閉じていますか? –

    +0

    はい。そしてzipファイルを別のフォルダの場所に移動しようとしました。そして、Tools ...で確認しました。ディレクトリが適切に設定されているオプション。 – devuxer

    答えて

    1

    私は:)

    この問題を持っていたし、私は私が私が本当に欲しかったものを非常によく似た何かをやっていたそれを解決するために管理だと思い、私は終わった、私たちのsvnシステム用のヘッダーを持っていた標準テンプレートを持っていることでした私はこの

    // $Id$ 
    // $Author$ 
    namespace $rootnamespace$ 
    { 
        using System; 
        using System.Collections.Generic; 
    $if$ ($targetframeworkversion$ == 3.5) using System.Linq; 
    $endif$ using System.Text; 
    
        public class $safeitemrootname$ 
        { 
        } 
    } 
    

    とのための間隔を終わっ\ 1033 \ Program Files \ MicrosoftビジュアルStudio 9.0 \ Common7 \ IDE \ ItemTemplates \ CSHARP \コードし、それを編集:Fooの中の既存のClass.zipファイルを抽出しますもし$ステートメントが違いを生み出すと思われたら$私はタブがあるか、それらの前に置かれていれば、正しく評価されず、むしろ評価されないでしょうちょっとあなたが見ているように評価したが、単に私のコードで印刷された。

    /installvstemplatesを実行したときにテンプレートが消えてしまった場合、cmdを実行するのにかなり時間がかかり、実際に何をしているのかが削除されます Foo:\ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ ItemTemplatesCacheを作成し、前述のように元の場所にあるzipファイルを展開してそのフォルダを再構築します。このコマンドがビジュアルスタジオを動作させるためには、実行中に最良のシャットダウンが必要であり、コマンドの再起動が完了するまで待つべきです。 (私は実際にフォルダを監視してビルドするのを知っていました)。

    個人的にはこれはフレキシブルなシステムですが、R#を使用している場合は、これを外部のテンプレートを実装する最も簡単な方法です。 msシステム。

    +0

    ありがとう@krystan。私はあきらめてしまい、やがて私の名前空間をどのように編成したかを変更したので、もうテンプレートは必要ありませんでした。テンプレートが必要になった場合は、私の '$ if $ $ 'ステートメントの間隔に注意してください。 – devuxer

    +0

    probs @DanThMan ..私は私の髪を引っ張っていた間に私はあなたのstackoverflowのポストにまた来て、喜んで他の誰かがそれを覚えていたはずだったはずだったはずでした、私はそれを覚えて、 ) –

    +0

    @krystanと@DanM:疑問の余地を超えてスペーシングの問題を確認しました: '$ if $'、 '$ else $'、 '$ endif $'は必ず最初の*テキストでなければなりません古いCプリプロセッサディレクティブの制限に似ています。これらのキーワードを他の場所に置くと、予期せず無視されます。また、複数のキーワードを連続して入力することはできません。つまり、ある種の出力書式設定が不可能であることを意味します。最も厄介なことに、 'else $ $ if if $ 'を書くことはできません。常に新しい改行を含む必要があります。 –

    0

    私は問題を抱えていました手動で作成されたZIPファイルを使用します。既存のテンプレートをエクスポートして変更しない限り、テンプレートを表示することはありません。 These are the instructions

    +0

    テンプレートが表示されますが、テンプレートを挿入すると正しく動作しません。 ReplaceParametersは自動生成されたvstemplateファイルではtrueに設定されていますが、テンプレートの '$ if $'ステートメントと '$ projectname $'宣言は置き換えられません。 – devuxer

    3

    Visual Studio 2008で動作させたい場合は、.vstemplateファイルの<VSTemplate Version="1.0.0"><VSTemplate Version="3.0.0">に変更する必要があります。次に、ユーザーアイテムテンプレートの場所として指定したものに.zipファイルを置きます。

    関連する問題