[C#/VS] NullReferenceException bij custom item template

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 13:55
Met behulp van deze blogpost heb ik het voor elkaar gekregen om een item template met wizard te maken. Dit is allemaal leuk en wel en Visual Studio ziet hem maar zodra ik via 'New Item...' deze template probeer te gebruiken in mijn project geeft hij een NullReferenceException (of in ieder geval de vast Message daarvoor: Reference not set...). Ik vermoed dat het een probleem in Visual Studio is, want ik heb alle code in mijn template class library al gecomment, en het probleem blijft.

De code ziet er nu globaal zo uit:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class WorkerClassGeneratorWizard : IWizard {
        private WorkerClassGeneratorForm GeneratorForm { get; set; }

        void IWizard.BeforeOpeningFile(ProjectItem projectItem) {
            // nothing
        }

        void IWizard.ProjectFinishedGenerating(Project project) {
            // nothing
        }

        void IWizard.ProjectItemFinishedGenerating(ProjectItem projectItem) {
            // nothing
        }

        void IWizard.RunFinished() {
            // nothing
        }

        void IWizard.RunStarted(object automationObject, System.Collections.Generic.Dictionary<string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams) {
             // *snip*
        }

        bool IWizard.ShouldAddProjectItem(string filePath) {
            return true;
        }
    }

En het template bestand, in het zip bestand:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<VSTemplate Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
  <TemplateData>
    <DefaultName>WorkerClass.cs</DefaultName>
    <Name>WorkerClass</Name>
    <Description>Generate a threaded worker class</Description>
    <ProjectType>CSharp</ProjectType>
    <SortOrder>10</SortOrder>
    <Icon>__TemplateIcon.ico</Icon>
  </TemplateData>
  <TemplateContent>
    <References>
      <Reference>
        <Assembly>System</Assembly>
      </Reference>
      <Reference>
        <Assembly>mscorlib</Assembly>
      </Reference>
    </References>
    <ProjectItem SubType="Code" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">WorkerClass.cs</ProjectItem>
    <ProjectItem SubType="Code" TargetFileName="$fileinputname$Events.cs" ReplaceParameters="true">WorkerClassEvents.cs</ProjectItem>
  </TemplateContent>
    <WizardExtension>
    <Assembly>WorkerClassGenerator, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=c932d90a0f5ae872</Assembly>
    <FullClassName>WorkerClassGeneratorWizard</FullClassName>
  </WizardExtension>
</VSTemplate>


Ik heb al van alles geprobeerd, zoals heel de WizardExtension node weg te halen, de class library compileren als x86 in plaats van 'Any CPU'. Uiteraard is de assembly met een eigen sleutel gesigned.

Ik denk niet dat ik mijn bad search day hebt, maar via Google kan ik alleen ASP.NET gerelateerde dingen vinden of verouderd omdat het dan over Visual Studio 2003 gaat. Heeft iemand een idee waar ik het probleem moet zoeken?

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 13:55
Iemand een idee? Voorlopig 'los ik het op' door een vies in elkaar gehacked programmaatje te gebruiken dat de class library laadt en zelf de wizard laadt en de I/O doet maar ik zou het liever goed hebben :)

[ Voor 10% gewijzigd door Sebazzz op 16-06-2009 21:59 ]

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]