Einige Webspaceanbieter erlauben ausschliesslich vorkompilierte ASP .NET Webprojekte auf dem WebServer. Während dies ab der Standard Version von Visual Studio per Mausklick gemacht werden kann (inkl. FTP-Upload) braucht es für die Express Edition des Visual Web Developer einen kleinen Zwischenschritt. Das Projekt muss per Kommandozeile vorkompiliert werden und dann von Hand mit einem üblichen FTP-Tool wie FileZilla heraufgeladen werden.

1
aspnet_compiler.exe -p "<Projektverzeichnis>" -v / "<Pfad vorkompilierten Projektes>"

mehr »

Probleme beim Importieren von BCP Dateien in eine SQL Server 2005 Datenbank? Gerade bei Produkten, welche die BCP Dateien über die Rechner Grenze hinaus importieren möchten (z.B. auf einen SQL Server auf einem anderen PC), tauchen immer wieder Probleme auf. So wird der Pfad im Bulk Copy Befehl vom SQL Server aus immer als Lokal interpretiert. Oder hatten Sie schon einmal Probleme mit dem Erstellen von BCP Dateien? Gerade mit Umlauten in Spalten oder gar Tabellen scheinen der BCP Import und Export nicht umgehen zu können. Es gibt aber eine vernünftige und sehr einfache Lösung für dieses Problem.

mehr »

Wieder einmal haben wir einen kuriosen Fehler in unserer Applikation lösen können. Nach mehreren Stunden der Ausführung des DoEvents-Befehls kann eine .NET Applikation abstürzen.

View Code VBNET
1
2
3
While Not isComplete
   System.Windows.Forms.Application.Doevents()
End While

Dies Schlaufe verursacht bei deren Ausführung über mehrere Stunden hinweg die folgende Exception:

Das Element wurde bereits hinzugefügt. Schlüssel im Wörterbuch: “-1″ Hinzuzufügender Schlüssel: “-1″

mehr »

Wie erkenne ich mit VB.NET (ab .NET Framework 2.0), ob die VB.NET Applikation mit Administratoren Rechten gestartet wurde? Eigentlich ist dazu nur einige einzige Zeile Code nötig:

View Code VBNET
1
Dim isAdmin As Boolean = My.User.IsInRole(ApplicationServices.BuiltInRole.Administrator)

Doch schon folgten bei einer komplexeren Applikation die ersten Probleme. Nie gab mir diese Methode als Administrator den korrekten Wert zurück (Begründung der .NET Hilfe). Bis ich eine kleine Zeile davor hinzufügte:

View Code VBNET
1
2
My.User.InitializeWithWindowsUser()
Dim isAdmin As Boolean = My.User.IsInRole(ApplicationServices.BuiltInRole.Administrator)

Auf der Microsoft Homepage befindet sich übrigens zum ganze UAC (User Account Control) von Windows Vista ein relativ dickes Dokument. Die meisten Codebeispiele sind in C++ gehalten und verwenden leider absolut unbegreiflicherweise die Unmanaged Win API.

Vom Schiff aus geht dies nicht (sprich mit dem Microsoft Standard ClickOnce Deployment). Allerdings kann mit einem einfachen Trick die eigene Applikation ins Autostart Menü (Start/Programme/Autostart) eintragen. Mit den folgenden Schritten geht dies ganz einfach:

  1. Installation der Applikation per ClickOnce auf dem eigenen PC
  2. Lokalisieren der Verknüpfungsdatei (Abb. 1)
  3. Kopieren der Verknüpfungsdatei ins Projektverzeichnis und Hinzufügen zum Projekt (Abb. 2)
  4. Ändern der Dateieigenschaften im Projekt selbst (Abb. 3):
    1. Build Action: Content
    2. Copy to Output Directory: Copy Always
  5. Und dann fehlt noch das Codestück, welches die Datei aus dem Applikationsverzeichnis ins Autostartverzeichnis kopiert (ein bisschen in VB .NET):
    View Code VBNET
    1
    2
    3
    4
    5
    6
    7
    8
    
    Dim startUpFolderPath As String = _
       IO.Path.Combine(System.Environment.GetFolderPath(Environment.SpecialFolder.Startup) _
       , "EasyWorkingTime.appref-ms")
    Dim originalPath As String = _
       IO.Path.Combine(System.IO.Path.GetDirectoryName( _
       System.Windows.Forms.Application.ExecutablePath) _
       , "EasyWorkingTime.appref-ms")
    IO.File.Copy(originalPath, startUpFolderPath)

Applikation starten und die entsprechende Funktion ausführen lassen und fertig ist der ganze Zauber. Natürlich ist die Datei EasyWorkingTime.appref-ms überall mit der eigenen Verknüpfungsdatei zu ersetzen.

clickonce01.pngclickonce02.pngclickonce03.png