L
lenz_m_e
Um eine Projekttemplate in Visual Studio 2003 .Net zu erstellen benötigt man unter anderem einen Ordner mit den Vorlagedateien und einer default.js Datei. Dieser Ordner befindet sich im Wizard verzeichnis, der jeweiligen Sprache. In meinem Fall habe ich eine Template in C# erstellt, also ist der Wizard Ordner in dem Ordner:
Microsoft Visual Studio .NET 2003\VC#\VC#Wizards\.
Bei mir heißt der "Test".
In dem Unterordner Scripts\1031 befindet sich nun die default.js.
In dieser habe ich ein wenig herumgespielt und herausbekommen, wie man Teile des am Anfang einzugebenden Projektnamen nehmen kann und im ganzen Projekt einfügen kann:
Man schreibt eine neue Funktion hinein:
function test()
{
var strMyProjectName = wizard.FindSymbol("PROJECT_NAME");
// Speichert den Projektnamen in strMyProjectName ab
var name_array = strMyProjectName.split(".");
// Teilt den namen immer am "." zeichen und schreibt die einzellnen teile in ein array
var strName = name_array[name_array.length - 1];
// schreibt den letzten teil des namens in strName
wizard.AddSymbol("Name_Connector",strName);
// der Parameter [!output Name_Connector] wird überall in der Vorlage durch den
//String, der in strName gespeichert ist, ersetzt
}
nun muss man diese Funktion noch in implementieren, indem man Sie in der Funktion
function OnFinish() aufruft (bzw. einen Verweis zu ihr erstellt):
function OnFinish(selProj, selObj)
{
var oldSuppressUIValue = true;
try
{
oldSuppressUIValue = dte.SuppressUI;
var strProjectPath = wizard.FindSymbol("PROJECT_PATH");
var strProjectName = wizard.FindSymbol("PROJECT_NAME");
var strSafeProjectName = CreateSafeName(strProjectName);
wizard.AddSymbol("SAFE_PROJECT_NAME", strSafeProjectName);
test() // Aufrufen der Funktion test
.....
}
}
Ich kenne mich nicht so mit JScript aus und wöllte aber gerne noch eine Abfrage eines Parameters beim erstellen des neuen Projektes einbauen.
Ich habe dies auch schon ausprobiert, indem ich die window.prompt-methode verwendet habe:
z.B.:
function test()
{
var txt = window.prompt("Test ", "hallo");
//müsste eigentlich den string txt abfragen...
wizard.AddSymbol("Text_Einfuegen",txt);
//wenn das abfragen des Stringes funktionieren würde, würde in der ganzen
//der Parameter [!output Text_Einfuegen] durch den string txt ersetzt werden
}
bei mir kommt aber ein Fehler:
Das Objekt unterstützt diese Eigenschaft oder Methode nicht.
ODER:
'window' ist undefiniert
Kann mir jemand einen anderen Weg nennen, um ein Input-Fenster aufzurufen?
Mit freundlichen Grüßen
Martin Engelmann
Microsoft Visual Studio .NET 2003\VC#\VC#Wizards\.
Bei mir heißt der "Test".
In dem Unterordner Scripts\1031 befindet sich nun die default.js.
In dieser habe ich ein wenig herumgespielt und herausbekommen, wie man Teile des am Anfang einzugebenden Projektnamen nehmen kann und im ganzen Projekt einfügen kann:
Man schreibt eine neue Funktion hinein:
function test()
{
var strMyProjectName = wizard.FindSymbol("PROJECT_NAME");
// Speichert den Projektnamen in strMyProjectName ab
var name_array = strMyProjectName.split(".");
// Teilt den namen immer am "." zeichen und schreibt die einzellnen teile in ein array
var strName = name_array[name_array.length - 1];
// schreibt den letzten teil des namens in strName
wizard.AddSymbol("Name_Connector",strName);
// der Parameter [!output Name_Connector] wird überall in der Vorlage durch den
//String, der in strName gespeichert ist, ersetzt
}
nun muss man diese Funktion noch in implementieren, indem man Sie in der Funktion
function OnFinish() aufruft (bzw. einen Verweis zu ihr erstellt):
function OnFinish(selProj, selObj)
{
var oldSuppressUIValue = true;
try
{
oldSuppressUIValue = dte.SuppressUI;
var strProjectPath = wizard.FindSymbol("PROJECT_PATH");
var strProjectName = wizard.FindSymbol("PROJECT_NAME");
var strSafeProjectName = CreateSafeName(strProjectName);
wizard.AddSymbol("SAFE_PROJECT_NAME", strSafeProjectName);
test() // Aufrufen der Funktion test
.....
}
}
Ich kenne mich nicht so mit JScript aus und wöllte aber gerne noch eine Abfrage eines Parameters beim erstellen des neuen Projektes einbauen.
Ich habe dies auch schon ausprobiert, indem ich die window.prompt-methode verwendet habe:
z.B.:
function test()
{
var txt = window.prompt("Test ", "hallo");
//müsste eigentlich den string txt abfragen...
wizard.AddSymbol("Text_Einfuegen",txt);
//wenn das abfragen des Stringes funktionieren würde, würde in der ganzen
//der Parameter [!output Text_Einfuegen] durch den string txt ersetzt werden
}
bei mir kommt aber ein Fehler:
Das Objekt unterstützt diese Eigenschaft oder Methode nicht.
ODER:
'window' ist undefiniert
Kann mir jemand einen anderen Weg nennen, um ein Input-Fenster aufzurufen?
Mit freundlichen Grüßen
Martin Engelmann
Zuletzt bearbeitet von einem Moderator: