Guid enthalten sollte 32 Ziffern mit 4 Bindestrichen (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) in VS-Erweiterbarkeit walkthrough

Ich bin mit dem Walkthrough: Teil 1 - Erstellen eines einfachen Projekts System genau so geschrieben, von der website http://msdn.microsoft.com/en-us/library/cc512961.aspx und die Managed-Paket Rahmen für Projekte genau wie heruntergeladen aus http://mpfproj11.codeplex.com/. Ich habe getestet die Exemplarische Vorgehensweise auf mehrere Computer der Entwicklung in Visual Studio 2013. Ich habe auch getestet, die in Visual Studio 2010 und 2012 mit Ihren jeweiligen SDK. Die gleichen Probleme zu Folgen präsentierten sich in den einzelnen Prüfungen.

Problem: ich erhalte die Ausnahme - Eine Ausnahme des Typs " System.FormatException " ist in mscorlib.dll wurde aber nicht behandelt werden, in Benutzer-code Zusätzliche Informationen: der Guid enthalten sollte 32 Ziffern mit 4 Bindestrichen (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) in die ProjectNode Klasse Methode:

private void SetProjectGuidFromProjectFile()
        {
            string projectGuid = this.GetProjectProperty(ProjectFileConstants.ProjectGuid);
            if (String.IsNullOrEmpty(projectGuid))
            {
                this.projectIdGuid = Guid.NewGuid();
            }
            else
            {
                Guid guid = new Guid(projectGuid);
                if (guid != this.projectIdGuid)
                {
                    this.projectIdGuid = guid;
                }
            }
        }

Auf der Linie Guid guid = new Guid(projectGuid);

projectGuid ist die Rückgabe der string "$guid1$", die von <ProjectGuid>$guid1$</ProjectGuid> im SimpleProject.myproj.

Break-Punkte in der Load-Methode des ProjectNode Klasse zeigt, dass

this.projectIdGuid = Guid.NewGuid();

gibt eine neue guid wie {6d4b8668-51ca-40eb-b013-9e7f96b82b68}.

In der Reload-Methode der ProjectNode Klasse die Methode this.SetProjectGuidFromProjectFile() ausgelöst wird und dann die exeption geworfen wird, wie oben gezeigt. Wenn ich <ProjectGuid>$guid1$</ProjectGuid> im SimpleProject.myproj, ich bekomme durch die Anwendung, ohne Ausnahme, aber Sie haben keine guid im Zusammenhang mit der Anwendung und erhalten eine Fehlermeldung, wenn Sie versuchen, Zugriff auf die Seite Eigenschaften für die neu erstellte Anwendung. .myproj kann nicht registrieren, richtig? Ich verbrachte eine Woche der recherche zu diesem Thema durch diverse blogs und Foren.

Sie haben zu hart code, Nein?
$guid1$ muss ersetzt werden durch die tatsächliche GUID entweder automatisch irgendwo anders im code, oder manuell.
Von meinem Verständnis die $guid1$ sollte ersetzt werden, mit der in-place-code mit dem neu erstellten guid. Zum Beispiel, wenn ich eine änderung .myproj .csproj $guid1$ wird ersetzt mit dem neu erstellten guid. Allerdings, $namespace$ und $Klasse$ im Programm.cs wird nicht ersetzt. ein Teil der Zweck dieser exemplarischen Vorgehensweise wird das erstellen und registrieren Sie Ihre eigenen Projekt-Typ. In der exemplarischen Vorgehensweise ist es .myproj. Wenn ich codieren Sie einen guid in der SimpleProject.myproj als jedes Projekt entsteht aus diesem Projekt geben wird, haben die gleichen Anwendungs-guid.
Bitte Fragen, eine Frage pro Thema. Und bitte machen Sie klar, welche Frage Sie Fragen. Fragen wie diese sind nicht eine gute Passform.
Problem 2 gelöscht pro Ihren Antrag. wird die doppelte Frage mit Frage 2 nur auf gesonderte postm

InformationsquelleAutor Marty | 2014-05-30

Schreibe einen Kommentar