7

Mam problemy z wyświetlaniem mojego kreatora szablonów graficznych. Śledziłem kroki: http://msdn.microsoft.com/en-us/library/ms185301.aspxKreator szablonów VS2012 - GUI nie pokazuje się

Oto co zrobiłem:

1) wypracował biblioteki klasy C# (.dll) z następujących plików:

UserInputForm.cs

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace myprojectvstemplate 
{ 
    public partial class UserInputForm : Form 
    { 
     private string customMessage; 

     public UserInputForm() 
     { 

      InitializeComponent(); 
      MessageBox.Show("here, calling ui"); 
     } 

     public string get_CustomMessage() 
     { 
      return customMessage; 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      customMessage = textBox1.Text; 

      this.Dispose(); 
     } 
    } 
} 

2) Dodano formularz wprowadzania danych użytkownika z polem edycji i combobox z kodem UserInputForm.cs

3) wygenerowała publicznych/prywatnych silnego klucza i zarejestrowany zespół z zakładki „podpisu” na stronie właściwości

4) Release wygenerowanego dll

5) zarejestrował ją gacutil/i mydllname. dll, żadnych błędów

6) stworzył C szablon projektu konsola ++ z tylko jednego pliku:

#include <iostream> 
using namespace std; 


int main(int argc, char** argv) 
{ 

    cout << "Hi hello world:" << "$custommessage$"; 

    return 0; 
} 

7) są wywożone jako projekt szablonu (nie Element) z wyboru na „import automatycznie na żywo”. Zmodyfikowany plik zip wewnątrz pliku .vstemplate tak:

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project"> 
    <TemplateData> 
    <Name>myproject_project</Name> 
    <Description>&lt;No description available&gt;</Description> 
    <ProjectType>VC</ProjectType> 
    <ProjectSubType> 
    </ProjectSubType> 
    <SortOrder>1000</SortOrder> 
    <CreateNewFolder>true</CreateNewFolder> 
    <DefaultName>myproject_project</DefaultName> 
    <ProvideDefaultName>true</ProvideDefaultName> 
    <LocationField>Enabled</LocationField> 
    <EnableLocationBrowseButton>true</EnableLocationBrowseButton> 
    <Icon>__TemplateIcon.ico</Icon> 
    </TemplateData> 
    <TemplateContent> 
    <Project TargetFileName="myproject_project.vcxproj" File="myproject_project.vcxproj" ReplaceParameters="true"> 
     <ProjectItem ReplaceParameters="false" TargetFileName="$projectname$.vcxproj.filters">myproject_project.vcxproj.filters</ProjectItem> 
     <ProjectItem ReplaceParameters="true" TargetFileName="myproject_project.cpp">myproject_project.cpp</ProjectItem> 
     <ProjectItem ReplaceParameters="false" TargetFileName="ReadMe.txt">ReadMe.txt</ProjectItem> 
    </Project> 
    </TemplateContent> 
    <WizardExtension> 
    <Assembly>myprojectvstemplate, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=a0a3d031ed112d61</Assembly> 
    <FullClassName>myprojectvstemplate.IWizardImplementation</FullClassName> 
    </WizardExtension> 
</VSTemplate> 

Niestety, gdy próbuję utworzyć nowy projekt szablonu UI nie jest w ogóle wyświetlany. Projekt jest właśnie otwarty i nie można go zastąpić parametrem $ custommessage $.

Dlaczego nie mogę wyświetlić interfejsu GUI mojego kreatora?

Dodatkowo: czy istnieje sposób debugowania, dlaczego zestaw nie jest ładowany?

Odpowiedz

1

miałem ten sam problem jak PO, po tym samym kursie.

Roztwór I stwierdzono, to:

W Modyfikowanie sekcji szablonu,

Etap 2 Ekstrakt plik ZIP w folderze i usunąć zip. Następnie zmodyfikuj vstemplate.

Na koniec spróbuj uruchomić kreatora w nowej instancji VS.

Nie wiem, czy to jest właściwe rozwiązanie, ale to właśnie dla mnie zadziałało.

+0

Musiałem wykonać wiele zadań i maszyn, ale w końcu udało mi się to osiągnąć. Dzięki Paresh, chociaż właśnie dałeś mi podpowiedź, w końcu udało mi się. –

+0

Chętnie pomogę :) – Paresh138

1

Prawdopodobnie nie można znaleźć zestawu za pomocą kreatora.

W sekcji WizardExtension należy wpisać dokładną nazwę zespołu i klasy.

Oczywiście ten zestaw powinien znajdować się w katalogu dodatków lub być zarejestrowany w GAC.

<WizardExtension> 
    <Assembly>myprojectvstemplate, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=a0a3d031ed112d61</Assembly> 
    <FullClassName>myprojectvstemplate.IWizardImplementation</FullClassName> 
</WizardExtension> 

Dzięki Serge

+0

Zarejestrowałem to za pomocą gacutil.exe, jak opisano powyżej i nie otrzymałem błędów "pomyślnie zarejestrowany zespół". Jeśli chodzi o rozszerzenie kreacji, nie jestem w 100% pewna co do Kultury (zespół mówi "żaden"), ale myślę, że Neutralne to to samo. Token jest aktualny, nazwa zespołu jest taka sama, jak nazwa głównej nazwy obszaru, pełna nazwa_klasy to nazwa zespołu. IWizardImplementation (moja klasa UI) –

+0

Możesz wychwycić kilka wyjątków, jeśli istnieją: 1) otwórz nowe okno dialogowe projektu w pierwszej instancji VS2012, 2) otwórz drugą instancję VS2012 3) dołącz debugger z drugiej instancji VS2012 do pierwszej instancji, 4) włączyć wyjątki w drugiej instancji VS2012, 5) spróbuj utworzyć nowy projekt w pierwszej instancji VS2012 Jeśli istnieją wyjątki, zobaczysz je w drugiej instancji VS2012 – TSV

+0

Wypróbowane to, ale otrzymało tylko ten wyjątek: "Wartość nie mieści się w oczekiwanym zakresie". Niestety nie rozumiem, jaki zakres/wartość ma na myśli. Jeśli możesz stworzyć prostego kreatora dla vs2012 z projektem szablonu i zip to mi, byłbym wdzięczny, abym mógł sprawdzić, gdzie się mylę. To powinno być 5-minutowe zadanie według powyższych kroków i upewnienie się, że coś nie jest w porządku. –