Probleme bei der Verwendung von Microsoft Visual Studio 2005
In diesem Dokument werden Probleme aufgelistet, die bei der Verwendung von Microsoft Visual Studio 2005 auftreten können. Informationen zu Problemen bei der Installation, Deinstallation, Reparatur und anderen Setupprozeduren finden Sie in der Infodatei.
Eine Liste mit den neuesten Änderungen zwischen Beta 2 und RTM finden Sie unter http://go.microsoft.com/fwlink/?LinkId=51223.
Auf dieser Seite
1. Probleme für alle Visual Studio-Produkte
2. Microsoft .NET Framework
3. Programmierbarkeit für intelligente Geräte
4. Integration der Quellcodeverwaltung
5. Crystal Reports
6. Tools für das Microsoft Office-System
1. Probleme für alle Visual Studio-Produkte
1.1 VC++ Visual Studio 2005 Beta 2-Projektdatei kann nicht geöffnet werden
Wenn Sie die endgültige Version von Visual Studio 2005 verwenden, um ein Beta 2 C++-Projekt zu öffnen, das zuletzt auf einem Computer geladen wurde, dessen Installationsverzeichnis für Visual Studio sich von dem des aktuellen Computers unterscheidet, oder wenn sich die Projektpfade geändert haben, wird möglicherweise eine Fehlermeldung ausgegeben.
So beheben Sie dieses Problem
Bearbeiten Sie die Datei mit den Projekteinstellungen. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den abgeblendeten Projektknoten, und wählen Sie "<Projektname>.vcproj bearbeiten" aus, wodurch die Datei im XML-Editor aufgerufen wird. Ändern Sie den Wert des Tags InheritedPropertySheets in "$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops", und laden Sie anschließend das Projekt erneut.
1.2 Wenn Sie unter Windows 2000 die Option Start mit Application Verifier verwenden, wird folgende Meldung ausgegeben: "Application Verifier wird vom Betriebssystem auf dem Computer Name nicht unterstützt. Führen Sie ein Update auf Windows XP oder höher durch."
Application Verifier wird unter Windows 2000 nicht unterstützt.
So beheben Sie dieses Problem
Aktualisieren Sie das Betriebssystem auf Windows XP oder höher.
1.3 Beim Start mit Application Verifier wird folgendes Dialogfeld angezeigt: "Application Verifier erfordert eine aktualisierte Systemdatei, die auf dem Computer Name nicht gefunden wurde. Möchten Sie das Update vom Windows Download Center herunterladen?"
Beim Setup von Visual Studio wird eine für Application Verifier erforderliche Systemdatei nicht installiert. Wenn die erforderliche Version der Datei im Betriebssystem des Computers nicht vorhanden ist, müssen Sie eine entsprechende Aktualisierung durchführen, bevor Sie Application Verifier verwenden können.
So beheben Sie dieses Problem
Wählen Sie im Dialogfeld 'Ja', um den Internetbrowser zu öffnen und die Aktualisierungsverknüpfung auf der Website des Microsoft Download Center anzuzeigen. Installieren Sie die erforderliche Aktualisierung. Sie können auch folgende Verknüpfung verwenden, um auf das Microsoft Download Center zuzugreifen:
http://go.microsoft.com/fwlink/?LinkId=49500
1.4 In der Toolbox im Designer für verteilte Systeme werden die lokalen Spracheinstellungen von Windows erst wiedergegeben, nachdem die Toolbox zurückgesetzt wurde
Im Dialogfeld Optionen können Benutzer festlegen, dass für Visual Studio die lokalen Spracheinstellungen von Windows verwendet werden. Diese Einstellungen werden in der Toolbox im Designer für verteilte Systeme jedoch erst angezeigt, nachdem die Toolbox zurückgesetzt wurde.
So beheben Sie dieses Problem
-
Schließen Sie alle Designer für verteilte Systeme (Anwendungs-Designer, System-Designer, Designer für logisches Datencenter und Bereitstellungs-Designer).
-
Klicken Sie mit der rechten Maustaste in die Toolbox, und klicken Sie anschließend auf Toolbox zurücksetzen.
-
Öffnen Sie erneut die Designer für verteilte Systeme, die Sie verwenden möchten.
1.5 Remotedebuggen unter Windows 98 und Windows Me
Problem 1:
Wenn Sie Visual Studio 2005 verwenden, um mit dem Standardtransport Computer unter Windows 98 oder Windows ME zu debuggen, die Teil einer Domäne mit Windows Server 2003-basiertem Domänencontroller sind, wird ca. zehn Minuten nach dem Starten des Windows 98/ME-Computers folgende Fehlermeldung angezeigt:
-------------------------
Microsoft Visual Studio
-------------------------
Die Verbindung mit dem Microsoft Visual Studio-Remotedebugmonitor mit dem Namen '<Computername>' konnte nicht hergestellt werden. Zugriff verweigert.
Ursache: Die Server Message Block (SMB)-Signierung ist für Windows Server 2003-basierte Domänencontroller sowohl aktiviert wie auch erforderlich.
Problem 2:
Wenn Sie Visual Studio 2005 auf einem Computer mit dem Betriebssystem Windows XP oder höher verwenden, um einen Computer unter Windows 98 oder Windows ME zu debuggen, kann folgende Fehlermeldung angezeigt werden.
-------------------------
Microsoft Visual Studio
-------------------------
Die Verbindung mit dem Microsoft Visual Studio-Remotedebugmonitor mit dem Namen '' konnte nicht hergestellt werden. Der Microsoft Visual Studio-Remotedebugmonitor auf dem Remotecomputer kann keine Verbindung mit dem lokalen Computer herstellen. Die DCOM-Kommunikation kann nicht initiiert werden. Weitere Informationen finden Sie in der Hilfe.
Ursache: "Remotezugriff für anonyme Anmeldung in DCOM" ist auf dem Computer, auf dem Visual Studio 2005 ausgeführt wird, deaktiviert.
So beheben Sie dieses Problem
Problem 1:
-
Stellen Sie die Domänencontroller-Richtlinie so ein, dass die SMB-Signierung aktiviert aber nicht erforderlich ist.
Informationen über die gleiche Vorgehensweise finden Sie unter http://support.microsoft.com/?kbid=887429 -
Starten Sie den Domänencontroller erneut.
-
Starten Sie den Computer, auf dem Visual Studio 2005 installiert ist, erneut.
-
Starten Sie den Computer mit dem Betriebssystem Windows 98/ME erneut.
Problem 2:
Um "Remotezugriff für anonyme Anmeldung in DCOM" auf dem Computer zuzulassen, auf dem Visual Studio 2005 ausgeführt wird, befolgen Sie folgende Anweisungen:
-
Geben Sie in der Eingabeaufforderung dcomcnfg ein, und drücken Sie die EINGABETASTE. Die Komponentendienste werden geöffnet.
-
Erweitern Sie in den Komponentendiensten das Element Komponentendienste. Erweitern Sie Computer und anschließend Arbeitsplatz.
-
Klicken Sie in der Symbolleiste auf die Schaltfläche Arbeitsplatz konfigurieren. Das Dialogfeld Arbeitsplatz wird angezeigt.
-
Klicken Sie im Dialogfeld Arbeitsplatz auf die Registerkarte COM-Sicherheit.
-
Klicken Sie unter Zugriffsberechtigungen auf Limits bearbeiten. Das Dialogfeld Zugriffsberechtigungen wird angezeigt.
-
Klicken Sie unter Gruppen- oder Benutzernamen, auf ANONYME ANMELDUNG.
-
Aktivieren Sie im Bereich für die Berechtigung zur ANONYMEN ANMELDUNG das Kontrollkästchen Remotezugriff, und klicken Sie anschließend auf OK.
-
Starten Sie den Computer erneut.
1.6 Wenn Sie für den Endpunkt eines Webdienstanbieters F1 drücken, wird eine Meldung mit dem Hinweis angezeigt, dass die Informationen nicht gefunden wurden
Wenn Sie F1 drücken, während der Endpunkt eines Webdienstanbieters in einem Anwendungsdiagramm ausgewählt ist, kann kein entsprechendes Hilfethema gefunden werden.
So beheben Sie dieses Problem
Suchen Sie in der Hilfe nach "Gewusst wie: Definieren von Vorgängen für ASP.NET-Webdienste".
1.7 Benutzer sollten vertrauliche Informationen nicht in benutzerdefinierten Einstellungen oder in Einstellungen speichern, die nicht mithilfe von SDM-Dokumenten als sicher definiert wurden
Vertrauliche Informationen, die in benutzerdefinierten Einstellungen oder in nicht durch SDM-Dokumente (z. B. SDM- oder AD-Dateien) als sicher definierten Einstellungen gespeichert sind, werden in diesen Dateien im Nur-Text-Format angezeigt.
So beheben Sie dieses Problem
Wenn Sie den Einstellungs- und Einschränkungs-Editor verwenden, speichern Sie vertrauliche Informationen nur in Einstellungen, die in SDM-Dokumenten als sichere Einstellungen definiert sind. Weitere Informationen finden Sie in der Hilfe unter "Gewusst wie: Erstellen benutzerdefinierter Einstellungen für Anwendungen, Server, Endpunkte und Zonen" sowie unter "Überlegungen zum Implementieren von Anwendungen".
1.8 Starten der systemeigenen Eingabeaufforderung von Itanium (IA64)
Beim Installieren der Tools auf Itanium (IA64) wird keine Verknüpfung zum Starten der systemeigenen Eingabeaufforderung von Itanium (IA64) erstellt.
So beheben Sie dieses Problem
Sie können die systemeigene Eingabeaufforderung von Itanium (IA64) auf folgende Arten starten:
-
Wählen Sie Start, und klicken Sie auf Ausführen.
-
Geben Sie cmd ein.
-
Geben Sie in der Eingabeaufforderung <Ihr Installationsverzeichnis für Visual Studio 2005>\VC\bin\vcvars64.bat ein.
1.9 Die Profilerstellung sowie die Ausführung von instrumentierten Modulen von Netzwerkfreigaben aus wird nicht unterstützt
Unter Verwendung der Standardeinstellungen von Visual Studio führt die Ausführung einer instrumentierten Binärdatei zu einer unbehandelten Ausnahme.
So beheben Sie dieses Problem
Kopieren oder verschieben Sie die Projekt- oder Binärdatei, für die Sie ein Profil erstellen möchten, auf die lokale Festplatte.
1.10 Die Verwendung der Ereignisablaufverfolgung für Windows (Event Tracing for Windows, ETW) zum Erfassen von Daten der Ereignisprofilerstellung für IIS5.1 wird nicht unterstützt
Das Erstellen von Ablaufverfolgungsprofilen für eine Anwendung für IIS5.1 sowie das Erfassen von ETW-Ereignissen führt im Hintergrund der Benutzeroberfläche zu einem Fehlschlag, und es wird der unzutreffende Fehler VSP1432 in der Eingabeaufforderung gemeldet.
1.11 Die Profilerstellung für IA64 wird nicht unterstützt
Die Profilerstellung für IA64 wird nicht mehr unterstützt.
1.12 Eigenständiger Profiler unterstützt keine Codeabdeckung
Wenn Sie versuchen, die Codeabdeckung auf einem installierten eigenständigen Profiler auszuführen, wird eine unbehandelte Ausnahme angezeigt.
1.13 Durch die Ausführung der Codeabdeckung für eine ASP.NET-Anwendung kann der geänderte Zustand von web.config beibehalten werden
Bei der Ausführung von Komponententests für ein ASP.NET-Projekt müssen die web.config-Dateien durch das Testmodul verändert werden. Manchmal werden diese Dateien nicht bereinigt und können in nachfolgenden Testläufen und Anwendungsausführungen zu Ausnahmen führen.
So beheben Sie dieses Problem
Stellen Sie die ursprüngliche web.config-Datei aus der Sicherung wieder her, die während dem Testlauf erstellt wurde
1.14 Das ReportViewer-Steuerelement wird unter Windows 98 nicht vollständig unterstützt
Das ReportViewer-Steuerelement von Windows Forms wird in Anwendungen unter Windows 98 nur eingeschränkt unterstützt. Mit diesem Steuerelement können Sie nur Berichte anzeigen, die zuvor bereits auf einem Reporting Services-Berichtsserver von SQL Server 2005 veröffentlicht wurden. Es ist nicht möglich, Client-Berichtsdefinitionsdateien (.rdlc) im lokalen Verarbeitungsmodus anzuzeigen.
1.15 Die Codeabdeckung für ASP.NET funktioniert nicht, wenn der IIS-Workerprozess als SYSTEM ausgeführt wird
Das Sammeln von Codeabdeckungsdaten für ASP.NET funktioniert nicht, wenn der IIS-Workerprozess als SYSTEM ausgeführt wird. Überprüfen Sie in MSDN den Namen des IIS-Workerprozesses auf dem System, da sich der Name für die verschiedenen Versionen von IIS unterscheidet. Sie können den Task-Manager verwenden, um festzustellen, für welchen Benutzer der Workerprozess ausgeführt wird.
Hinweis: Die Komponententests werden fehlerfrei ausgeführt, wenn die Codeabdeckung deaktiviert ist.
So beheben Sie dieses Problem
Ändern Sie den IIS-Workerprozess so, dass er nicht als SYSTEM ausgeführt wird.
1.16 Beim Versuch, ein Profil für eine ASP.NET-Anwendung bei aktivierter Formularauthentifizierung zu erstellen, wird ein Fehler ausgegeben
Wenn Sie versuchen, bei aktivierter Formularauthentifizierung ein Profil für eine ASP.NET-Anwendung zu erstellen, wird ein Websitekonfigurationsfehler ausgegeben, und die Anwendung wird nicht ausgeführt.
So beheben Sie dieses Problem
Es ist keine Lösung bekannt.
1.17 Das Ausführen von Aktionen in Diagrammen des Designers für verteilte Systeme bei gleichzeitiger Ausführung von Code führt dazu, dass Visual Studio nicht mehr reagiert
Wenn beispielsweise im System-Designer Anwendungen zu einem Systemdiagramm hinzugefügt werden, während der Debugger ausgeführt wird, reagiert Visual Studio nicht mehr.
So beheben Sie dieses Problem
Sorgen Sie dafür, dass Code erst ausgeführt wird, wenn bereits Aktionen in Diagrammen des Designers für verteilte Systeme ausgeführt wurden.
1.18 Bei der Erstellung von Ablaufverfolgungsprofilen für eine freigegebene DLL wird ein Profil für alle Prozesse erstellt, die diese DLL verwenden
Wenn Sie für eine freigegebene DLL ein Ablaufverfolgungsprofil erstellen möchten, wird möglicherweise ein Profil für alle Prozesse erstellt, die diese DLL verwenden.
So beheben Sie dieses Problem
-
Deaktivieren Sie die Profilerstellung für alle Prozesse, für die Sie kein Profil erstellen möchten. Verwenden Sie hierzu vsperfcmd -proccessoff:PID.
-
Legen Sie die Einstellung HKCU/software/microsoft/visual studio/8.0/VSPERF/Monitor/Settings/ProcessProfile=Off fest, starten Sie den Zielprozess, und aktivieren Sie anschließend die Profilerstellung für alle gewünschten Prozesse mithilfe von vsperfcmd -processon:PID
Hinweis: Wenn die Profilerstellung abgeschlossen ist, müssen Sie alle Prozesse schließen, die die freigegebene DLL verwenden, um die Überwachung zu beenden und die Daten in die Berichtsdatei wegzuschreiben.
1.19 So erstellen Sie ein Ablaufverfolgungsprofil für generierte systemeigene Abbilder (Natively Generated, ngen'd)
Bei dem Versuch, ein generiertes systemeigenes Abbild zu instrumentieren, wird der nicht zutreffende Fehler VSP1014 ausgegeben.
Die CLR lädt keine instrumentierte verwaltete Binärdatei, für die bereits ein systemeigenes Abbild erstellt wurde.
So beheben Sie dieses Problem
Nachdem Sie die verwaltete Binärdatei und nicht das generierte systemeigene Abbild instrumentiert haben, müssen Sie einen der folgenden Schritte ausführen:
-
Löschen Sie das generierte systemeigene Abbild, sodass die CLR die instrumentierte Binärdatei verwendet.
-oder-
-
Generieren Sie die Binärdatei mithilfe von ngen.exe erneut.
1.20 Die Verwendung der MarkProfile-Profilerstellungs-APIs ohne Ausführung des Profil-Monitors führt zu einem Absturz
Wenn Sie die aus vsperf.h verfügbaren MarkProfile, CommentMarkProfile, oder CommentMarkAtProfile verwenden und der Profil-Monitor nicht ausgeführt wird, kommt es zu einem Absturz der Anwendung. Dies wird am deutlichsten, wenn Sie die API-Aufrufe hinzufügen und diese dann mithilfe des Debuggers und nicht mit der Profilerstellung starten.
So beheben Sie dieses Problem
Starten Sie den Profil-Monitor mit "vsperfcmd -start:sample -output:foo.vsp"
1.21 Webprojekte: In einer im GAC befindlichen Assembly definierte Typen können nicht in Klassendiagrammen dargestellt werden
Klassendiagramme können keine Typen in Assemblys darstellen, auf die verwiesen wird, wenn die folgenden Bedingungen zutreffen:
-
Das Klassendiagramm ist in einem Webprojekt gespeichert.
-
Die Assembly, auf die verwiesen wird, ist im Global Assembly Cache (GAC) installiert.
-
Die Assembly, auf die verwiesen wird, ist nicht im Framework-Verzeichnisstamm gespeichert ("Microsoft.Net\Framework\<Version>\").
So beheben Sie dieses Problem
Stellen Sie den Typ, auf den verwiesen wird, aus einem Projekt dar, das kein Webprojekt ist.
1.22 Instrumentierte verwaltete DLL kann nicht in ein Website-Projekt geladen werden
Ein auf einer Website gehostetes, instrumentiertes verwaltetes Benutzersteuerelement kann unter den Standardsicherheitseinstellungen für .NET nicht geladen werden.
So beheben Sie dieses Problem
Sie müssen für die lokale Website die Einstellung Voll vertrauenswürdig aktivieren, um die instrumentierte DLL laden zu können.
caspol.exe -ag 1.2 -url http://localhost FullTrust
1.23 Application Verifier ist für C++-Projekte mit gemischtem Modus nicht aktiviert. Stattdessen wird das folgende Dialogfeld angezeigt:"Für den ausgewählten Debugmodus wird Application Verifier nicht unterstützt. Weitere Informationen finden Sie in der Dokumentation. Klicken Sie auf 'OK', um das Debuggen ohne den Verifier fortzusetzen."
Application Verifier ist für Anwendungen mit gemischtem Modus nicht aktiviert, obwohl die Auswahl im Menü Debuggen möglich ist.
So beheben Sie dieses Problem
Fahren Sie ohne Application Verifier mit dem Debuggen fort.
1.24 Der Treiber für die Profilerstellung wird unter Windows 2000 nicht korrekt initialisiert
Bei der ersten Verwendung des Treibers für die Profilerstellung muss dieser sich selbst initialisieren. Wenn diese Initialisierung auf einem Windows 2000 Server über eine Remotedesktopsitzung erfolgt, wird der Treiber für zukünftige Sitzungen, nicht aber für die aktuelle Sitzung initialisiert. Wenn Sie versuchen, den Monitor für die aktuelle Sitzung zu starten, wird der Fehler VSP1398 angezeigt, und der Monitor kann nicht gestartet werden.
So beheben Sie dieses Problem
-
Starten Sie den Computer erneut.
- oder -
-
Stellen Sie mithilfe der Remotedesktopverbindung eine Verbindung mit einer anderen Sitzung auf demselben Computer her.
1.25 Testlauffenster: Benutzer der Controllerbenutzergruppe, die nicht der Benutzergruppe Admin angehören, können keine Verbindung mit dem Controller herstellen
Wenn ein Benutzer der Gruppe der Controllerbenutzer und nicht der Gruppe der Controller-Administratoren hinzugefügt wurde, wird die Änderung erst nach einem Neustart des Controllerdiensts wirksam. Daher kann der Benutzer keine Verbindung mit dem Controller herstellen.
So beheben Sie dieses Problem
Starten Sie den Controllerdienst erneut.
1.26 Wenn eine Datei erneut in den Editor geladen wird, werden Codierungsänderungen möglicherweise nicht angezeigt
Visual Studio 2005 erkennt keine geänderte Codierung, wenn eine Datei erneut geladen wird. Wenn Sie die Codierung einer Datei außerhalb des aktuellen Editors geändert haben oder einen Quellcode-Verwaltungsvorgang ausgeführt haben, bei dem die Codierung einer im Editor geöffneten Datei geändert wurde, wird die Datei automatisch erneut von Visual Studio geladen. Nach dem erneuten Laden der Datei im Editor wird der Dateiinhalt möglicherweise nicht korrekt angezeigt.
So beheben Sie dieses Problem
-
Schließen Sie die Datei, ohne die Änderungen zu speichern.
-
Klicken Sie im Menü Datei auf Öffnen, und wählen Sie anschließend Datei aus.
-
Klicken Sie im Dialogfeld Datei öffnen auf den Pfeil, der neben der Schaltfläche Öffnen angezeigt wird, und klicken Sie dann auf Öffnen mit.
-
Wählen Sie im Dialogfeld Öffnen mit den Editor (z. B. den Binär- oder den Ressourcen-Editor) aus, in dem die Datei geöffnet werden soll. Um eine Datei mit einer besonderen Codierung zu öffnen, wählen Sie einen Editor mit Codierungsunterstützung aus, z. B. XML-Editor mit Codierung.
-
Klicken Sie auf OK.
-
Wählen Sie im Dialogfeld Codierung in der Dropdownliste Codierung die entsprechende Codierung aus.
-
Klicken Sie auf OK.
1.27 Bei der Installation des Setup-Projekts erfolgt eine Produktreparatur
Wenn Visual Studio 2003 nach Visual Studio 2005 installiert wird, führt die Erstellung eines Setup-Projekts aus einer der beiden Visual Studio-Versionen zur Ausführung der Produktreparatur. Die Produktreparatur erfolgt für alle Benutzer außer demjenigen, der Visual Studio 2003 installiert hat.
So beheben Sie dieses Problem
Wenn die Produktreparatur erfolgt, lassen Sie diese bis zum Abschluss laufen. Damit die Reparatur erfolgreich ist, muss diese von einem Benutzerkonto aus erfolgen, über das nicht die Installation von Visual Studio 2003 erfolgt ist. Zudem muss das Benutzerkonto über Administratorrechte verfügen.
1.28 Nach der Installation eines Visual Studio 2005 Tools for Microsoft Office-Projekts schlägt die Ausführung eines Office-Produkts fehl
Nach der Installation eines Visual Studio 2005 Tools for Microsoft Office-Add-in-Projekts, das eine registrierungsfreie COM-Komponente enthält, schlägt die Ausführung des Office-Produkts, auf das das Add-In verweist, fehl.
So beheben Sie dieses Problem
Die registrierungsfreie COM-Komponente wird für Visual Studio 2005 Tools for Microsoft Office-Add-in-Projekte nicht unterstützt.
1.29 Die Signierung von aus Visual Studio 2003 importierten Setup- und Bereitstellungsprojekten schlägt bei deren Erstellung fehl
Aus Visual Studio 2003 importierte Setup- und Bereitstellungsprojekte mit aktivierter Signierung werden beim Erstellen in Visual Studio 2005 nicht signiert. Zur Buildzeit wird die folgende Meldung im Fenster mit der Fehlerliste angezeigt: "Die Datei ' <Dateiname> ' wurde nicht signiert. Das Bereitstellungsprojekt enthält veraltete Signatureigenschaften. Weitere Informationen finden Sie in der Hilfe."
So beheben Sie dieses Problem
Um die Signierung zu aktivieren, können Sie von einem Postbuildschritt im Setup- und Bereitstellungsprojekt aus das Software Development Kit-Tool Signtool für die Buildausgabe aufrufen. Weitere Informationen zu dieser Vorgehensweise finden Sie im zur oben genannten Buildmeldung gehörenden Hilfethema. Sie können auf die Hilfe zugreifen, indem Sie die Meldung im Fenster mit der Fehlerliste markieren und anschließend F1 drücken.
So entfernen Sie veraltete Signaturprojekteigenschaften
-
Doppelklicken Sie im Fenster mit der Fehlerliste auf die entsprechende Meldung.
-
Klicken Sie im daraufhin angezeigten Dialogfeld auf 'Ja'. Dadurch werden die veralteten Signaturprojekteigenschaften aus der Projektdatei entfernt.
1.30 Bestimmte mit Visual Studio 2005 verfügbare Bootstrapper-Pakete verwenden nur 32-Bit-Plattformen
Die mit Visual Studio 2005 verfügbaren Bootstrapper-Pakete für .NET Framework 2.0, SQL Server Express 2005, Microsoft Visual J# Redistributable, Windows Installer 2.0 und Windows Installer 3.1 verwenden nur 32-Bit-Plattformen. Wenn ein mithilfe dieser Pakete erstellter Bootstrapper auf einer 64-Bit-Plattform ausgeführt wird, kann dies die Blockierung der Installation verursachen.
So beheben Sie dieses Problem
Die Bootstrapper-Pakete für die 64-Bit-Versionen der verteilbaren Dateien von .NET Framework 2.0 und SQL Server Express 2005 werden im Microsoft Download Center zur Verfügung gestellt.
1.31 Die Verwendung benutzerdefinierter Typen (User-Defined Types, UDT) als Einstellung kann im Einstellungs-Designer unerwartetes Verhalten verursachen
Die Verwendung benutzerdefinierter Typen als Einstellung kann Probleme verursachen, wenn die Assembly, in der der UDT abgelegt ist, aktualisiert wird, während das betreffende Projekt geöffnet ist. Falls dieses Szenario erforderlich ist, können Sie das Problem umgehen, indem Sie für die UDT-Assembly die Verwendung inkrementeller Versionssemantik festlegen.
So beheben Sie dieses Problem
Wenn der als Einstellung verwendete UDT in einer Klassenbibliothek abgelegt ist, müssen Sie die Bibliothek inkrementell versionieren, um das Problem zu beheben. Wenn der UDT in einer EXE-Datei abgelegt ist, muss die IDE geschlossen und erneut gestartet werden, damit Änderungen am UDT wirksam werden.
1.32 Keine Forms-Eigenschaft in "My" in einem Benutzersteuerelement-Projekt
My.Forms ist in einem Benutzersteuerelement-Projekt nicht verfügbar.
So beheben Sie dieses Problem
Es ist keine Lösung bekannt.
1.33 Beim Anhalten im Ruhezustand kann die Methode eines Objekts nicht über Remotedebuggen aufgerufen werden
Wenn der nachstehende Code auf einem Remotecomputer ausgeführt wird, und Sie anschließend über Remotedebuggen eine Verbindung mit dem ausgeführten Code herstellen, und die Ausführung beim Aufruf von Sleep() unterbrochen wird, können Sie Member der Variablen c nicht auswerten.
c = New c1 'wobei c1 als gültige Klasse angenommen wird While True Threading.Thread.Sleep(1000) End While
So beheben Sie dieses Problem
Beenden Sie Sleep(). Anschließend können Objekte normal ausgewertet werden.
1.34 Visual Studio 2005 Team Edition für Tester: Fehlertabelle für Auslastungstest enthält: "Der für das Anwenden der Schwellenwertregel erforderliche abhängige Indikator konnte nicht gefunden werden"
Die Fehlertabelle des Auslastungstest-Ergebnisviewers enthält einen Fehler mit der Meldung "Der für das Anwenden der Schwellenwertregel erforderliche abhängige Indikator konnte nicht gefunden werden". Der Auslastungstest enthält eine Schwellenwertregel, mit der ein Leistungsindikator mit einem anderen verglichen wird. Dieser Fehler tritt auf, wenn der Vergleichsleistungsindikator während eines Samplingintervalls keine Instanz generiert.
So beheben Sie dieses Problem
Ändern Sie die zugeordnete Schwellenwertregel so, dass der Vergleich mit einer Konstanten und nicht mit einem anderen Leistungsindikator erfolgt. Abgesehen von der fehlgeschlagenen Ausführung der angegebenen Schwellenwertregel wirkt sich dies nicht auf die Ergebnisse des Auslastungstests aus und kann daher problemlos ignoriert werden.
Verwenden Sie das folgende Verfahren, um den Indikator zu ändern:
-
Bearbeiten Sie den Auslastungstest, und wählen Sie Indikatorensätze/Auslastungstest/Indikatorenkategorieren/LoadTest:Anforderung/Indikatoren/Durchschn. Wartezeit für Verbindung/Schwellenwertregeln.
-
Löschen Sie die Regel Indikatoren vergleichen
-
Klicken Sie mit der rechten Maustaste, um die Regel Mit Konstante vergleichen hinzuzufügen.
-
Legen Sie in der Regel Warnung bei Überschreiten auf true den Wert für die Warnung auf 0,01 (10 ms) und den kritischen Schwellenwert auf 0,02 (20 ms) fest.
1.35 Visual Studio 2005 Team Edition für Tester: Der Webtestlauf schlägt fehl mit der Meldung "Objektverweis ist nicht auf eine Instanz des Objekts festgelegt"
Die Ausführung eines codierten Webtests mit einer nicht verwendeten Datenquelle schlägt fehl, und folgende Fehlermeldung wird angezeigt: "Der Objektverweis ist nicht auf eine Objektinstanz festgelegt". Dies geschieht, weil in einem codierten Webtest eine Datenquelle definiert ist, die an kein Testelement gebunden ist.
So beheben Sie dieses Problem
Entfernen Sie die nicht verwendete Datenquelle aus dem codierten Webtest, oder binden Sie ein Feld der Datenquelle an ein Testelement, indem Sie der Testklasse ein DataBinding-Attribut hinzufügen
1.36 Visual Studio 2005 Team Edition für Tester: Explizites Festlegen der Proxyeigenschaft einer SoapHttpClientProtocol-Implementierung
Wenn Sie einen Auslastungstest durchführen, der Komponententests für den Aufruf von Webdiensten umfasst, sollte der Komponententest explizit die Proxyeigenschaft der Webdienstproxyklasse für die Implementierung von System.Web.Services.Protocols.SoapHttpClientProtocol festlegen. Hierdurch werden Leistungsengpässe vermieden, die auftreten können, wenn der Proxy automatisch erkannt werden muss.
Beispielsweise verfügen Sie über folgende Webdienstproxyklasse:
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="InstantOrderSoap", Namespace="http://tempuri.org/")]
öffentliche partielle Klasse InstantOrder : System.Web.Services.Protocols.SoapHttpClientProtocol {
}
Legen Sie nach dem Erstellen des Proxyobjekts und vor seiner Verwendung explizit die Proxyeigenschaft fest:
InstantOrder orderCheck = new InstantOrder();
orderCheck.Proxy = new WebProxy("myproxy", true);
1.37 Eine Struktur kann nicht einer variant-Eigenschaft in einem ActiveX-EXE-Objekt übergeben werden
Unter Windows 98 kann eine Struktur nicht einer variant-Eigenschaft in einem ActiveX-EXE-Objekt übergeben werden. Das Problem wird dadurch verursacht, dass auf einem bereinigten Windows 9X-Computer die System-DLL rpcrt4.dll standardmäßig nicht registriert wird, sodass der Registrierungsschlüssel [HKEY_CLASSES_ROOT\CLSID\{B5866878-BD99-11D0-B04B-00C04FD91550}] im Betriebssystem fehlt. Der Aufruf ist aufgrund der fehlenden Registrierung fehlerhaft.
So beheben Sie dieses Problem
Wechseln Sie zu C:\Windows\System, und rufen Sie RegSvr32.exe rpcrt4.dll manuell auf.
1.38 New bei einem Typparameter mit zyklischen Einschränkungen bewirkt, dass der VB-Compiler nicht mehr reagiert und Speicherzuweisungen zunehmen
Wenn folgender Code in eine Konsolenanwendung eingefügt wird, führt dies dazu, dass die Anwendung nicht mehr reagiert.
Class C1(Of U As U) 'die zyklischen Einschränkungen hier verursachen das spätere Problem
End Class
Partial Class C1(Of U)
Dim x As New U 'Problem - dies verursacht Endlosschleife, und die Speicherauslastung wird
immer größer, bis der Speicher nicht mehr verfügbar ist
End Class
So beheben Sie dieses Problem
Entfernen Sie die zyklische Einschränkung.
1.39 Parameter für StartupNextInstanceEvent-Handler enthalten keine Befehlszeilenargumente, wenn die Anwendung mit ClickOnce gestartet wird
Parameter für StartupNextInstanceEvent-Handler enthalten nicht die Befehlszeilenargumente der zweiten Anwendungsinstanz, wenn die Anwendung mit ClickOnce gestartet wird. Sie müssen die My.Application.Deployment.ActivationUri-Eigenschaft verwenden, um die Befehlszeilenargumente abzurufen.
So beheben Sie dieses Problem
Verwenden Sie wie folgt die ASP-Laufzeitklassen zum Abrufen der Befehlszeilenargumente:
Imports System.Web Dim commandLineArgs as NameValueCollection = _ HttpUtility.ParseQuery(My.Application.Deployment.ActivationUri)
1.40 Der VB-Compiler unterstützt nicht das InternalsVisibleTo-Attribut
<Assembly: InternalsVisibleTo("Foo.Dll, PublicKeyToken=a29c01bbd4e39ac5")>
Dieses Attribut macht (unter anderem) Friend-Typen für andere Assemblys verfügbar. Dieses Attribut wird vom VB-Compiler nicht unterstützt.
Einige Komponententesttechnologien, die beim Testen privater Typen von diesem Attribut abhängen, funktionieren nicht wie erwartet.
So beheben Sie dieses Problem
Es ist keine Lösung bekannt.
1.41 Die Dokumentation für vsperfcmd.exe ist nicht vorhanden
Die Dokumentation von vsperfcmd zur Beschreibung häufiger Benutzerszenarios ist nicht vorhanden.
Hier finden Sie einige Beispiele für häufig verwendete Befehle, die Sie mit vsperfcmd.exe verwenden können:
vsperfcmd -start:sample -output:foo.vsp vsperfcmd -start:trace -output:foo.vsp -counter:g,1,0,InstructionsRetired vsperfcmd -launch:foo.exe -args:"input arguments" -gc:lifetime vsperfcmd -attach:foo.exe -pf:1
1.42 My.Log ist in einer VB-Websteuerelementbibliothek nicht verfügbar
In einer VB-Websteuerelementbibliothek ist My.Log nicht verfügbar. Da My projektspezifisch ist, steht My.Log in einem Websiteprojekt für WebUserControls zur Verfügung. Es ist jedoch nicht für Klassen in Websteuerelementbibliothek-Projekten verfügbar, die von einer Website verwendet werden.
So beheben Sie dieses Problem
Verwenden Sie Trace.Write anstatt der My.Log-Methoden.
1.43 My.Application.Log.WriteEntry kann eine Ausnahme auslösen, wenn der Benutzer keine Datei-E/A-Berechtigung hat
-
Erstellen Sie eine neue Konsolenanwendung mit folgendem Code:
My.Application.Log.DefaultFileLogWriter.CustomLocation = "D:\temp" My.Application.Log.WriteEntry("Foo") -
Führen Sie die Anwendung aus.
ERGEBNIS:
Die Protokolldatei wird in D:\temp erstellt. Das Verzeichnis D:\Dokumente und Einstellungen\<Benutzername>\Anwendungsdaten\Microsoft\WindowsApplication1\1.0.0.0 wird ebenfalls erstellt, sofern es noch nicht vorhanden ist. Falls der Benutzer dazu nicht berechtigt ist, wird eine Ausnahme ausgelöst. Dies tritt wahrscheinlich auf, wenn Sie eine Klassenbibliothek in einer Webanwendung verwenden, weil der ASP.NET-Prozess standardmäßig keine Schreibberechtigung für ein Anwendungsdatenverzeichnis hat.
So beheben Sie dieses Problem
-
Entfernen Sie über app.config den Standard-FileLogTraceListener, und konfigurieren Sie My.Application.Log neu, um einen anderen TraceListener zu verwenden.
-
Überwachen Sie das Ereignis Unbehandelte Ausnahme, und fahren Sie einfach fort, wenn dieses Ereignis gemeldet wird.
-
Führen Sie Try/Catch für jeden Protokollaufruf aus (oder wenigstens für die Aufrufe, die wahrscheinlich zuerst ausgeführt werden).
1.44 Verweise auf 32-Bit-COM-Komponenten funktionieren möglicherweise nicht in VB- und C#-Anwendungen, die auf 64-Bit-Plattformen ausgeführt werden
Die meisten vorhandenen COM-Komponenten sind nur für 32-Bit-Plattformen verfügbar und werden in 64-Bit-Prozessen auf einer 64-Bit-Plattform nicht unterstützt (obwohl sie in 32-Bit-Prozessen auf einer 64-Bit-Plattform ordnungsgemäß ausgeführt werden). VB- und C#-Anwendungen, die auf diese 32-Bit-COM-Komponenten verweisen, werden standardmäßig nicht auf einer 64-Bit-Plattform ausgeführt, weil die Anwendung standardmäßig als 64-Bit-Prozess gestartet wird.
Das Problem tritt auf, wenn für ein Projekt mit einem oder mehreren COM-Verweisen Folgendes gilt:
-
Das Projekt wurde auf Visual Studio 2005 migriert und wird auf 64-Bit-Plattformen ausgeführt.
-oder-
-
Das Projekt wurde mit Visual Studio 2005 auf 64-Bit-Plattformen erstellt.
Die VB- und C#-Compiler verwenden in Visual Studio 2005 die Zielplattformeigenschaft, um zu bestimmen, ob die EXE- oder DLL-Dateien im 32-Bit- oder im 64-Bit-CPU-Architekturmodus ausgeführt werden sollen. Diese Eigenschaft ist in Visual Studio 2005 standardmäßig auf 'AnyCPU' festgelegt. Damit wird angegeben, dass die Anwendung abhängig von der Hostplattform entweder im 32-Bit- oder im 64-Bit-Modus ausgeführt wird. Wenn Sie die Anwendung in solchen Fällen debuggen oder ausführen, wird möglicherweise eine Meldung mit dem Hinweis angezeigt, dass die Klasse nicht instanziiert werden kann.
So beheben Sie dieses Problem
Legen Sie die Zielplattformeigenschaft für VB- oder C#-Projekte, die Verweise auf COM-Komponenten enthalten, auf 'X86' fest.
Für C#-Projekte:
-
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie 'Eigenschaften'.
-
Wählen Sie die Registerkarte Erstellen aus.
-
Legen Sie die Eigenschaft Zielplattform auf 'X86' fest.
Für VB-Projekte:
-
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und öffnen Sie 'Eigenschaften'.
-
Wählen Sie die Registerkarte Kompilieren aus.
-
Klicken Sie auf die Schaltfläche Erweiterte Kompilierungsoptionen…
-
Legen Sie die Eigenschaft Ziel-CPU auf 'X86' fest.
Express Edition:
Die VB- und C#-Express-Produkte machen die Zieleigenschaft innerhalb der Entwicklungsumgebung nicht verfügbar. Sie müssen die Projektdatei mit einem Text-Editor oder einem XML-Editor sorgfältig bearbeiten.
-
Schließen Sie das Projekt und/oder die Projektmappe.
-
Klicken Sie im Menü Datei auf Datei öffnen.
-
Wechseln Sie zum Projektverzeichnis, und markieren Sie die Projektdatei.
-
Klicken Sie auf die Schaltfläche Öffnen. Die Projektdatei sollte nun im XML-Editor geöffnet werden.
-
Suchen Sie nach dem ersten <PropertyGroup>-Abschnitt, und fügen Sie folgende Zeile ein:
<PlatformTarget>x86</PlatformTarget> -
Speichern Sie die Projektdatei.
-
Öffnen Sie das Projekt und/oder die Projektmappe erneut, indem Sie im Menü Datei auf Projekt/Projektmappe öffnen klicken.
-
Fahren Sie mit dem Entwickeln, Debuggen und Testen fort.
Alternativ, wenn die Anwendung für 64-Bit-Plattformen bestimmt ist, können Sie sicherstellen, dass es auf den Entwicklungs- und Bereitstellungscomputern 64-Bit-Entsprechungen für die der Anwendung hinzugefügten COM-Steuerelemente gibt.
1.45 Die Verwendung servergespeicherter Windows-Profile kann dazu führen, dass die beim erstmaligen Start angezeigte Meldung bei jedem Start angezeigt wird
Wenn ein Produkt der Visual Studio-Produktfamilie mit servergespeicherten Windows-Profilen verwendet wird, wird die beim ersten Start angezeigte Meldung "Visual Studio 2005 konfiguriert die Umgebung für die erste Verwendung. Dies kann einige Minuten dauern." bei jedem Start einer Sitzung angezeigt. Dies kann die Leistungen beim Start unnötig verringern und zu Verzögerungen führen.
So beheben Sie dieses Problem
Klicken Sie auf Extras > Optionen... Wählen Sie "Einstellungen importieren und exportieren", und ändern Sie den unter "Eigene Einstellungen automatisch in folgender Datei speichern:" angegebenen Pfad in einen Pfad, der sich NICHT im Verzeichnis "Eigene Dokumente" befindet.
1.46 Das Installieren eines auf DTE.CommandBars zugreifenden Add-ins vor dem Start von Visual Studio 2005 führt zu einem Fehler beim Laden des Add-ins
Wenn nach der ersten Installation von Visual Studio 2005 ein Add-In installiert wird, das versucht, DTE.CommandBars in OnConnection zu verwenden, wird beim ersten Start von Visual Studio 2005 die folgende Meldung ausgegeben:
Das Add-In <Add-In-Name> konnte nicht geladen werden oder hat eine Ausnahme ausgelöst.
Soll dieses Add-In entfernt werden?
So beheben Sie dieses Problem
Starten Sie nach erfolgter Installation von Visual Studio 2005 die Anwendung Visual Studio, und beenden Sie diese *bevor* Sie Add-Ins installieren.
Wenn dieses Add-In bereits installiert war, und die oben angegebene Meldung angezeigt wird, klicken Sie auf "Nein", und schließen Sie Visual Studio. Navigieren Sie in einem Eingabeaufforderungsfenster zu <VSInstallDir>\Common7\IDE, und führen Sie folgenden Befehl aus:
devenv /resetaddin *
1.47 Möglicherweise kann für Webdienstverweise in Klassenbibliotheken von Visual Basic oder Visual J# kein Reverse-Engineering durchgeführt werden, wenn das Erstellen der Klassenbibliotheken zuletzt erfolgt
In diesem Szenario enthält eine Visual Studio-Projektmappe eine Visual Basic- oder Visual J#-Klassenbibliothek, die einen Webverweis auf einen Webdienst enthält. Die Projektmappe umfasst eine ASP.NET-Website, die einen Verweis auf die Klassenbibliothek besitzt. Nachdem diese Elemente zur Projektmappe hinzugefügt wurden, müssen bestimmte Einträge der Konfigurationsdatei aus der App.config-Datei der Klassenbibliothek in die Web.config-Datei der Website kopiert werden. Wenn die Klassenbibliothek nach dem Kopieren der Einträge der Konfigurationsdatei, aber vor dem Hinzufügen eines Anwendungsdiagramms für das Reverse-Engineering dieser Elemente erstellt wird, ist ein Reverse-Engineering im Diagramm nur für die ASP.NET-Website möglich. Deshalb ist ein Reverse-Engineering des Webdienstverweises als Webdienst-Consumerendpunkt für die ASP.NET-Anwendung eventuell nicht möglich. Darüber hinaus ist für eine Verbindung mit dem Webdienst, auf den verwiesen wird, u. U. kein Reverse-Engineering möglich. Wenn sich der Webverweis auf einen Webdienst bezieht, der nicht bereits im Diagramm enthalten ist, kann für einen externen Webdienst des Webdiensts, auf den verwiesen wird, kein Reverse-Engineering durchgeführt werden.
So beheben Sie dieses Problem
-
Klicken Sie nach dem Hinzufügen des Diagramms mit der rechten Maustaste auf den Webverweis in der Klassenbibliothek, und wählen Sie Webverweis aktualisieren.
-
Erstellen Sie die Klassenbibliothek erneut.
1.48 Ändern des Tabellenspeicherorts führt möglicherweise zu Verbindungsfehlern
Wenn Sie den Speicherort einer Tabelle zur Laufzeit in eine andere Datenbank ändern, müssen Sie sicherstellen, dass in der neuen Datenbank eine Tabelle enthalten ist, die denselben Namen wie die im ursprünglichen Bericht enthaltene Tabelle hat. Wenn die Tabellennamen nicht übereinstimmen, schlägt die Verbindung fehl.
So beheben Sie dieses Problem
Stellen Sie sicher, dass die neue Datenbank eine Tabelle enthält, die denselben Namen hat wie die im ursprünglichen Bericht enthaltene Tabelle.
1.49 Verwenden Sie keine NULL-Zeichenfolge zum Festlegen der Auswahlformel für den Viewer
Wenn Sie die Auswahlformel für den Viewer so festlegen möchten, dass alle im Bericht enthaltenen Datensätze angezeigt werden, verwenden Sie anstelle der NULL-Zeichenfolge eine leere Zeichenfolge. Durch die NULL-Zeichenfolge wird die Auswahlformel des ursprünglichen Berichts nicht überschrieben.
So beheben Sie dieses Problem
Die leere Zeichenfolge wird dargestellt durch "" oder String.Empty. Die NULL-Zeichenfolge wird in C# durch NULL oder in Visual Basic durch Nothing dargestellt.
1.50 Die Migration von in Shift-JIS codierten Projekten kann zu einer fehlerhaften Darstellung der Schriftzeichen führen
Japanische Schriftzeichen, die als Shift-JIS codiert sind, werden in einer von Visual Studio 2002 oder Visual Studio 2003 auf Visual Studio 2005 migrierten ASP.NET-Webanwendung nicht korrekt dargestellt.
So beheben Sie dieses Problem
Konvertieren Sie vor dem Migrieren alle ASP-Seiten in UTF-8.
1.51 Beim Importieren eines Projekts von Crystal Reports 9 oder Crystal Reports 10 gehen Namespaceverweise verloren
Verweise auf die Assemblys CrystalDecisions.ReportSource, CrystalDecisions.Shared und CrystalDecisions.Windows.Forms gehen verloren, wenn ein Windows-Projekt aus Crystal Reports 9 oder Crystal Reports 10 auf Crystal Reports für Visual Studio 2005 migriert wird.
So beheben Sie dieses Problem
Fügen Sie die Verweise manuell hinzu, bevor Sie die Anwendung nach der Migration kompilieren.
1.52 Ein Reverse-Engineering für einen Webdienstverweis in einer Klassenbibliothek ist nicht möglich, wenn sowohl ein Windows- als auch ein ASP.NET-Webprojekt auf diese Klassenbibliothek verweisen
In diesem Szenario enthält eine Visual Studio-Projektmappe ein Anwendungsdiagramm mit einer implementierten Windows- und ASP.NET-Anwendung. Die Projektmappe enthält auch eine Klassenbibliothek mit einem Webverweis auf einen Webdienst. Sowohl das Windows- als auch das ASP.NET-Webprojekt verweisen auf diese Klassenbibliothek. Nach dem Erstellen der Klassenbibliothek und dem Kopieren der erforderlichen Einträge aus der App.config-Datei der Klassenbibliothek in die Konfigurationsdateien beider Projekte ist ein Reverse-Engineering als Consumerendpunkt für die Windows- oder ASP.NET-Anwendung unter Umständen nicht möglich. Darüber hinaus ist das Reverse-Engineering der Verbindung mit dem Webdienst, auf den verwiesen wird, u. U. ebenfalls nicht möglich. Wenn sich der Webverweis auf einen Webdienst bezieht, der nicht bereits im Diagramm enthalten ist, kann für einen externen Webdienst des Webdiensts, auf den verwiesen wird, kein Reverse-Engineering durchgeführt werden.
So beheben Sie dieses Problem
-
Schließen Sie das Anwendungsdiagramm.
-
Entfernen Sie Verweise auf die freigegebene Klassenbibliothek aus dem Windows- und ASP.NET-Projekt.
-
Fügen Sie dem ASP.NET-Projekt den Klassenbibliotheksverweis hinzu.
-
Öffnen Sie das Anwendungsdiagramm.
-
Fügen Sie dem Windows-Projekt den Klassenbibliotheksverweis hinzu.
1.53 Das Erweitern von Datendateien im Server-Explorer in FTP-Websites kann einen Absturz der IDE verursachen
Wenn Sie eine FTP-Website öffnen und dem Verzeichnis App_Data eine Datendatei (MDB oder MDF) hinzufügen, anschließend das Server-Explorer-Fenster öffnen und die
Verbindung mit der Datendatei unter dem Knoten Datenverbindungen erweitern, kann dies dazu führen, dass die IDE abstürzt oder nicht mehr reagiert, sodass nicht gespeicherte Daten möglicherweise verloren gehen.
So beheben Sie dieses Problem
Entwickeln Sie die Website ausgehend von einem Speicherort für lokale Dateien unter Verwendung einer Dateisystem- oder IIS-Website. Verwenden Sie den Befehl Website kopieren zum Übertragen von Dateien in den bzw. aus dem FTP-Speicherort.
1.54 Drucken oder Exportieren aus Firefox kann eine Ausnahme auslösen
Wenn Benutzer mithilfe des CrystalReportViewer-Steuerelements einen Bericht exportieren oder drucken, kann hierdurch eine Ausnahme ausgelöst werden. Dieses Problem tritt auf, wenn die Webseite ein CrystalReportViewer-Steuerelement sowie Microsoft-Websteuerelemente enthält und im Webbrowser Firefox angezeigt wird.
So beheben Sie dieses Problem
Legen Sie EnableEventValidation in der ASP-Seite auf False fest, damit Benutzer in Firefox Berichte drucken oder exportieren können.
1.55 Application Verifier ist für C++-Projekte mit gemischtem Modus nicht aktiviert. Stattdessen wird folgende Meldung angezeigt:"Für den ausgewählten Debugmodus wird Application Verifier nicht unterstützt. Weitere Informationen finden Sie in der Dokumentation. Klicken Sie auf 'OK', um das Debuggen ohne den Verifier fortzusetzen."
Application Verifier ist für Anwendungen mit gemischtem Modus nicht aktiviert, obwohl eine Auswahl aus dem Menü Debuggen möglich ist. Ein Dialogfeld wird angezeigt, in dem eine Meldung angibt, dass Application Verifier nicht aktiviert ist, und mit dem Sie das Debuggen ohne Application Verifier fortsetzen können.
So beheben Sie dieses Problem
Fahren Sie ohne Application Verifier mit dem Debuggen fort.
1.56 Visual Studio 2005 Team Edition für Tester: Auslastungstestergebnisse werden trotz korrekter Konfiguration nicht in der Ergebnisdatenbank gespeichert
Die Auslastungstestergebnisse einer lokalen Ausführung werden trotz fehlerfreier Konfiguration des Auslastungstests nicht in der Ergebnisdatenbank gespeichert. Wenn dieser Fall eintritt, wird folgende Meldung angezeigt:
"Die Datenbank mit Auslastungstestergebnissen konnte nicht geöffnet werden. Überprüfen Sie, dass die mit der Verbindungszeichenfolge für den Testcontroller (oder den lokalen Computer) angegebene Datenbank das Auslastungstestschema enthält und aktuell verfügbar ist."
Die Ergebnisdatenbank für lokale Auslastungstestergebnisse wird während der Initialisierung des ersten lokalen Auslastungstestlaufs erstellt. Dieser Fehler tritt auf, wenn der den ersten Auslastungstestlauf initiierende Benutzer nicht über die zum Erstellen der Datenbank erforderliche Berechtigung verfügt.
So beheben Sie dieses Problem
Der erste Auslastungstestlauf muss durch einen Administrator initiiert werden, damit die Erstellung der Ergebnisdatenbank für den Auslastungstest erzwungen wird.
1.57 Visual Studio 2005 Team Edition für Tester: Es ist unter Umständen nicht möglich, von Remotecomputern aus auf in SQL Express gespeicherte Auslastungstestergebnisse zuzugreifen
Die Konfiguration von SQL Express sowie die Windows-Firewall können den Remotezugriff auf in SQL Express gespeicherte Auslastungstestergebnisse blockieren. In der Standardinstallation für SQL Express wird der Remotezugriff auf die Datenbank deaktiviert. Im Setup von Load Controller wird die Konfiguration von SQL Express und der Windows-Firewall automatisch so festgelegt, dass ein Remotezugriff auf SQL Express zulässig ist. Im Setup werden jedoch Änderungen an diesen Konfigurationen vorgenommen, wenn auch SQL Express installiert wird. SQL Express kann auch mithilfe des Setups von Visual Studio installiert werden. Hierdurch wird die Konfiguration von SQL Express und der Windows-Firewall jedoch nicht so geändert, dass ein Remotezugriff zulässig ist.
Wenn ein Remotezugriff auf Auslastungstestergebnisse in SQL Express durch den Viewer für Auslastungstestergebnisse nicht möglich ist, wird folgende Meldung angezeigt:
"Das Ergebnisrepository konnte nicht gelesen werden: Auf das Ergebnisrepository des Auslastungstests konnte nicht zugegriffen werden: Fehler beim Herstellen einer Verbindung zum Server. Beim Herstellen einer Verbindung zu SQL Server 2005 kann der Fehler dadurch verursacht werden, dass SQL Server mit den Standardeinstellungen keine Remoteverbindungen zulässt."
So beheben Sie dieses Problem
Konfigurieren Sie SQL Express und die Windows-Firewall manuell so, dass ein Remotezugriff zulässig ist. Führen Sie folgende Schritte aus, um den Remotezugriff auf SQL Express zu aktivieren:
-
Öffnen Sie den Konfigurations-Manager für SQL Server, indem Sie auf Start klicken und anschließend Alle Programme, Microsoft SQL Server 2005, Konfigurationstools, SQL Server-Konfigurations-Manager auswählen.
-
Erweitern Sie im linken Bereich des Konfigurations-Managers für SQL Server den Knoten für die SQL Server 2005-Netzwerkkonfiguration, und wählen Sie Protokolle für SQLEXPRESS.
-
Klicken Sie im rechten Bereich mit der rechten Maustaste auf Named Pipes, und aktivieren Sie diese.
-
Klicken Sie mit der rechten Maustaste auf TCIP/IP, und wählen Sie Aktivieren.
-
Wählen Sie im linken Bereich SQL Server 2005-Dienste.
-
Klicken Sie im rechten Bereich mit der rechten Maustaste auf SQL Server-Browser, und wählen Sie Eigenschaften.
-
Klicken Sie im Dialogfeld Eigenschaften auf die Registerkarte Dienste.
-
Legen Sie auf der Seite Dienste die Eigenschaft für den Startmodus auf Automatisch fest, und klicken Sie auf OK.
-
Klicken Sie mit der rechten Maustaste auf SQL Server-Browser, und wählen Sie Start.
-
10. Klicken Sie mit der rechten Maustaste auf SQL Server (SQLEXPRESS), und wählen Sie Neu starten.
Führen Sie die folgenden Schritte aus, um die Windows-Firewall zu konfigurieren.
-
Öffnen Sie das Dialogfeld Windows-Firewall, und klicken Sie auf die Registerkarte Ausnahmen.
-
Klicken Sie auf Programm hinzufügen und Durchsuchen, um sqlbrowser.exe zu finden, und klicken Sie auf OK.
-
Klicken Sie auf Programm hinzufügen und Durchsuchen, um sqlservr.exe zu finden. Klicken Sie auf OK.
-
Klicken Sie auf Anschluss hinzufügen, geben Sie "SQL-Dienst" als Name und 1433 als Anschlussnummer an, und wählen Sie das Optionsfeld TCP aus.
-
Klicken Sie im Dialogfeld Windows-Firewall auf OK.
1.58 Die Interopunterstützung von Long (VT_I8) ist auf WinXP beschränkt
Spät gebundene Aufrufe unter Win2K oder Win9x zur Übergabe eines Long (VT_I8) werden nicht ausgeführt. WinXP ist die einzige unterstützte Plattform für VT_I8 durch OLE-Automatisierung.
So beheben Sie dieses Problem
Verwenden Sie Integer anstelle von Long.
1.59 Die Konstante EnvDTE80.WindowKinds.vsWindowKindImmediate ist fehlerhaft
Die Konstante vsWindowKindImmediate gibt für das Direktfenster nicht die korrekte GUID zurück.
So beheben Sie dieses Problem
Verwenden Sie anstelle der vsWindowKindImmediate-Konstante die folgende GUID: {ECB7191A-597B-41F5-9843-03A4CF275DDE}
Alternativ erhalten Sie mithilfe der folgenden Angabe die korrekte GUID für das Direktfenster:
DTE.Windows.Item("Immediate Window").ObjectKind
1.60 Setup-Projekt für den Assistenten für gemeinsames Add-in funktioniert nicht auf Computern, die nur mit Microsoft Office ausgestattet sind
Add-Ins für Office benötigen für eine Ausführung die Extensibility.dll, die im Setup-Projekt für gemeinsame Add-Ins nicht automatisch enthalten ist.
So beheben Sie dieses Problem
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Add-In-Setup-Projekt, und wählen Sie Hinzufügen | Assembly. Klicken Sie auf der Registerkarte .NET auf Erweiterungen, und klicken Sie auf OK. Nachdem die Assembly hinzugefügt wurde, wählen Sie diese im Projektmappen-Explorer aus. Stellen Sie sicher, dass die "Register"-Eigenschaft auf "vsdraDoNotRegister" festgelegt ist.
1.61 Die Optionen Schriftarten und Farben werden nach dem Zurücksetzen nicht sofort wiederhergestellt
Sie können Umgebungseinstellungen zurücksetzen, indem Sie auf Extras > Einstellungen importieren und exportieren... klicken und anschließend "Alle Einstellungen zurücksetzen" auswählen. Sie können Umgebungseinstellungen jedoch auch zurücksetzen, indem Sie im Befehlsfenster den Befehl "Tools.ImportAndExportSettings /reset" ausgeben. In beiden Fällen werden die Optionen Schriftarten und Farben erst nach dem Neustart von Visual Studio wiederhergestellt.
So beheben Sie dieses Problem
Starten Sie Visual Studio erneut, nachdem Sie den Zurücksetzungsvorgang ausgeführt haben.
1.62 Application Verifier wird für DLL-basierte Projekte, ATL-Webdienstprojekte und VC-Projekte für intelligente Geräte nicht unterstützt
Application Verifier wird in den folgenden Szenarios nicht unterstützt:
-
Beim Verwenden von Start mit Application Verifier für ein DLL-Projekt und beim Laden des Projekts in einer ausführbaren Datei, die nicht Teil der Projektmappe ist.
-
Wenn Sie unter Projekteigenschaften | Debuggen den Befehl so ändern, dass etwas anderes als das aktuell geladene Projekt ($TargetPath) ausgeführt wird. Dies trifft auch auf das Remotedebuggen zu.
-
Application Verifier wird für ATL-Webdienstprojekte nicht unterstützt, da diese in einem anderen Prozess ausgeführt werden.
-
Application Verifier wird für VC-Projekte für intelligente Geräte nicht unterstützt, da diese in einer anderen Architektur ausgeführt werden.
Application Verifier ist für die in der IDE geladenen EXE-Projekte aktiviert.
So beheben Sie dieses Problem
Laden Sie für die obigen Szenarios 1 & 2 das Projekt der ausführbaren Zieldateien in die IDE, und verwenden Sie anschließend Application Verifier. Die Verwendung von Application Verifier in allen oben genannten Fällen entspricht einer normalen Debugsitzung (Debuggen | Start).
1.63 Ein Reverse-Engineering für einen Webdienstverweis in einer Klassenbibliothek ist nicht möglich, wenn sowohl ein Windows- als auch ein ASP.NET-Webprojekt auf diese Klassenbibliothek verweisen
In diesem Szenario enthält eine Visual Studio-Projektmappe ein Anwendungsdiagramm mit einer implementierten Windows- und ASP.NET-Anwendung. Die Projektmappe enthält auch eine Klassenbibliothek mit einem Webverweis auf einen Webdienst. Sowohl das Windows- als auch das ASP.NET-Webprojekt verweisen auf diese Klassenbibliothek. Nach dem Erstellen der Klassenbibliothek und dem Kopieren der erforderlichen Einträge aus der App.config-Datei der Klassenbibliothek in die Konfigurationsdateien beider Projekte ist ein Reverse-Engineering als Consumerendpunkt für die Windows- oder ASP.NET-Anwendung unter Umständen nicht möglich. Darüber hinaus ist das Reverse-Engineering der Verbindung mit dem Webdienst, auf den verwiesen wird, u. U. ebenfalls nicht möglich. Wenn sich der Webverweis auf einen Webdienst bezieht, der nicht bereits im Diagramm enthalten ist, kann für einen externen Webdienst des Webdiensts, auf den verwiesen wird, kein Reverse-Engineering durchgeführt werden.
So beheben Sie dieses Problem
-
Schließen Sie das Anwendungsdiagramm.
-
Entfernen Sie Verweise auf die freigegebene Klassenbibliothek aus dem Windows- und ASP.NET-Projekt.
-
Fügen Sie dem ASP.NET-Projekt den Klassenbibliotheksverweis hinzu.
-
Öffnen Sie das Anwendungsdiagramm.
-
Fügen Sie dem Windows-Projekt den Klassenbibliotheksverweis hinzu.
1.64 Visual Studio 2005 Team Edition für Tester: Der Webtestlauf schlägt fehl mit der Meldung "Objektverweis ist nicht auf eine Instanz des Objekts festgelegt"
Die Ausführung eines codierten Webtests mit einer nicht verwendeten Datenquelle schlägt fehl, und folgende Fehlermeldung wird angezeigt: "Der Objektverweis ist nicht auf eine Objektinstanz festgelegt". Dies geschieht, weil in einem codierten Webtest eine Datenquelle definiert ist, die an kein Testelement gebunden ist.
So beheben Sie dieses Problem
Entfernen Sie die nicht verwendete Datenquelle aus dem codierten Webtest, oder binden Sie ein Feld der Datenquelle an ein Testelement, indem Sie der Testklasse ein DataBinding-Attribut hinzufügen.
1.65 Die DataBindings-Eigenschaft für Steuerelemente ist nach dem Kopieren und Einfügen eines Felds aus dem Datenquellenfenster nicht richtig
Wenn Sie Felder aus der Datenbank einer Datenquelle kopieren und einfügen (anstatt diese durch Drag & Drop einzufügen), um Steuerelemente im Windows Forms-Designer zu erstellen, werden die Datenbindungseigenschaften für die Tabelle anstatt für die Felder der Tabelle festgelegt. Objekt- und Webdatenquellen sind davon nicht betroffen.
So beheben Sie dieses Problem
Legen Sie für alle im Windows Forms-Designer hinzugefügten Steuerelemente in den Eigenschaften die richtige Datenquelle für die (DataBindings-)Eigenschaft fest.
1.66 Die Installation von VS auf dem gleichen Computer wie SQL Server 2005 kann dazu führen, dass VS das Business Intelligence-Profil verwendet
Kunden, die Visual Studio 2005 auf dem gleichen Computer wie SQL Server 2005 installieren, stellen möglicherweise fest, dass sie beim ersten Start von VS nicht zum Auswählen eines Profils aufgefordert werden und dass für VS das entsprechende Profil für die Business Intelligence-Entwicklung festgelegt ist. Der Grund dafür ist, dass SQL Server 2005 eine Version von Visual Studio für die Unterstützung der Business Intelligence-Entwicklung (Business Intelligence Development Studio) installiert, und das entsprechende Profil für VS festlegt.
So beheben Sie dieses Problem
Mithilfe des Assistenten zum Importieren und Exportieren von Einstellungen kann das VS-Profil jederzeit geändert werden. Der Assistent kann in VS im Menü Extras unter "Einstellungen importieren und exportieren..." gestartet werden.
Wählen Sie im Assistenten "Alle Einstellungen zurücksetzen " aus, klicken Sie auf Weiter >, wählen Sie "Ja, aktuelle Einstellungen speichern" aus, klicken Sie auf Weiter >, wählen Sie das gewünschte Profil aus, z. B. "Allgemeine Entwicklungseinstellungen", und klicken Sie auf Fertig stellen.
VS muss möglicherweise neu gestartet werden, damit die neuen Einstellungen wirksam werden.
1.67 Freigegebene Add-Ins werden möglicherweise auf Computern nicht ohne eine Aktualisierung geladen
Damit freigegebene Add-Ins in Word oder Excel geladen werden können, muss der Computer, auf dem das Add-In ausgeführt wird, möglicherweise aktualisiert werden.
So beheben Sie dieses Problem
Weitere Informationen finden Sie in der Knowledge Base unter http://go.microsoft.com/fwlink/?LinkId=52419.
1.68 VS-Inhaltsinstaller kann nicht ausgeführt werden, wenn die C#-Express-SKU deinstalliert wurde
Wenn die C#-Express-SKU und anschließend eine der primären SKUs installiert wird, und dann die C# Express-SKU deinstalliert wird, kann der VS-Inhaltsinstaller nicht ausgeführt werden.
So beheben Sie dieses Problem
Führen Sie für Visual Studio die Funktion Reparieren unter Systemsteuerung | Software aus.
1.69 Zum Installieren einer ADDIN-Datei auf einem nicht englischen Windows-Betriebssystem ist möglicherweise eine Problemumgehung erforderlich
Wenn auf einem Computer ein nicht englisches Windows-Betriebssystem ausgeführt wird, in dem ein Teil des Ordners "Dokumente und Einstellungen\Alle Benutzer\Anwendungsdaten\Microsoft\MSEnvShared\Addins" lokalisiert wurde, wird dieser Pfad von dem Add-In nicht erkannt.
So beheben Sie dieses Problem
-
Navigieren Sie in Visual Studio 2005 zu Extras | Optionen | Add-In/Makrosicherheit.
-
Fügen Sie im Abschnitt Add-In-Dateipfade den vollständigen Pfad zur ADDIN-Datei hinzu.
Alternativ können Sie die ADDIN-Datei unter [Systemlaufwerk]:\Dokumente und Einstellungen\Alle Benutzer\Anwendungsdaten\Microsoft\MSEnvShared\Addins installieren.
2. Microsoft .NET Framework
2.1 Manuelle Tests im Microsoft Word-Format, deren Titel DBCS-Zeichen (Double-Byte Character Set, Doppelbyte-Zeichensatz) enthalten, werden während und nach der Ausführung des Tests nicht fehlerfrei angezeigt
Während der Ausführung eines manuellen Tests wird die Ausführungsseite für manuelle Tests angezeigt. Nachdem die Ausführung des Tests abgeschlossen wurde, wird die Ergebnisseite für manuelle Tests angezeigt. Wenn der Name des manuellen Tests DBCS-Zeichen enthält, wird der manuelle Test auf beiden dieser Seiten fehlerhaft angezeigt. Der Test wird anscheinend im unformatierten HTML-Format angezeigt. Wenn Sie mit der rechten Maustaste auf den Testkörper klicken und Aktualisieren auswählen, reagiert der Test für einige Minuten nicht mehr, und anschließend wird eine leere Seite angezeigt.
So beheben Sie dieses Problem
Verwenden Sie ausschließlich SBCS-Zeichen (Single-Byte Character Set, Singlebyte-Zeichensatz) im Namen von manuellen Tests im Microsoft Word-Format. DBCS-Zeichen können in der Beschreibungseigenschaft des Tests und im Textkörper des Tests verwendet werden.
2.2 Auf einem 64-Bit-Computer, auf dem 32-Bit Visual Studio 2005 und SQL Server 2005 ausgeführt werden, wird die falsche Version von msvsmon.exe gestartet
Das SQLCLR-Debugging schlägt auf einem 64-Bit-Computer fehl, wenn Visual Studio 2005 (x86) und SQL Server 2005 (x86) installiert sind. Die folgende Meldung wird angezeigt:
---------------------------
Microsoft Visual Studio
---------------------------
.NET-Code kann nicht debuggt werden. An den SQL Server-Prozess auf 'Computername' kann nicht angehängt werden. Die 64-Bit-Version des Visual Studio-Remotedebugmonitors (MSVSMON.EXE) kann 32-Bit-Prozesse oder 32-Bit-Dumps nicht debuggen. Verwenden Sie stattdessen die 32-Bit-Version.
---------------------------
OK
---------------------------
Die 64-Bit-Version von msvsmon.exe wird automatisch gestartet, da dieser Computer ein 64-Bit-Betriebssystem besitzt. Stattdessen sollte die 32-Bit-Version gestartet werden, da es sich bei beiden Anwendungen um 32-Bit-Anwendungen handelt. Dies ist ein Problem der Architektur, das an dieser Stelle nicht behoben werden kann.
So beheben Sie dieses Problem
Benutzer, die SQLCLR-Debuggen auf dem lokalen Computer durchführen möchten, können die 32-Bit-Version von msvsmon.exe manuell starten.
Es empfiehlt sich nicht, die 32-Bit-Version von msvsmon.exe für einen automatischen Start zu registrieren, da hierdurch das Funktionieren anderer 64-Bit-Debugszenarios beeinträchtigt würde.
2.3 AuthorizationStoreRoleProvider: Der Autorisierungs-Manager gibt nicht zutreffende oder unklare Fehlermeldungen zurück
AuthorizationStoreRoleProvider ist vom Autorisierungs-Manager abhängig. Einige der vom Autorisierungs-Manager zurückgegebenen Fehlermeldungen geben nicht die zugrunde liegende Ursache eines Problems an. Nachstehend werden Fehlermeldungen aufgelistet, von denen bekannt ist, dass sie entweder unzutreffend oder unklar sind.
"COMException (0x8007052b): Das Kennwort kann nicht aktualisiert werden. Der Wert, der für das aktuelle Kennwort angegeben wurde, ist falsch."
Bei diesem Fehler handelt es sich in Wirklichkeit um einen Zugriffsverweigerungsfehler. Dieser Fehler kann auftreten, wenn sämtliche der folgenden Bedingungen zutreffen: ASP.NET wird unter IIS 5.0, unter Windows XP IIS 5.1 oder im IIS 5.0-Isolationsmodus unter Windows Server 2003 bereitgestellt; die Anwendung ist für die Verwendung der integrierten Windows-Authentifizierung konfiguriert; die Richtliniendatei ist in der Verzeichnisstruktur der aktuellen ASP.NET-Anwendung abgelegt. Dieser Fehler kann außerdem auftreten, wenn ASP.NET als lokales Computerkonto ausgeführt wird und versucht, in einer Remote-AD-Instanz bzw. Remote-ADAM-Instanz auf einen Richtlinienspeicher zuzugreifen.
"Weitere Daten sind verfügbar."
Dieser Fehler bedeutet, dass der Richtlinienspeicher nicht gefunden werden konnte. Dieser Fehler kann auftreten, wenn die Verbindungszeichenfolge auf eine ADAM-Instanz zeigt und die ADAM-Instanz, auf die verwiesen wird, nicht vorhanden ist. Der Fehler tritt beispielsweise auf, wenn die Verbindungszeichenfolge "LDAP://localhost:4000/Cn=storename, DC=Partition1" angegeben ist und Partition1 nicht in der ADAM-Instanz vorhanden ist.
"Der angegebene Server kann den angeforderten Vorgang nicht ausführen."
Dieser Fehler bedeutet in Wirklichkeit, dass der angebene Server nicht gefunden werden konnte. Dieser Fehler kann auftreten, wenn die Verbindungszeichenfolge auf einen nicht vorhandenen Server zeigt oder die Nummer eines Anschlusses verwendet, der von AD oder ADAM nicht überwacht wird.
"ArgumentException: Falscher Parameter."
Diese Fehlermeldung gibt in Wirklichkeit an, dass eine LDAP-Abfragegruppe im Autorisierungs-Manager verwendet wird, um zu ermitteln, ob ein Benutzer in einer Rolle ungültig ist.
So beheben Sie dieses Problem
Überprüfen Sie mögliche Ursachen anhand der oben aufgelisteten Fehlerbedingungen. Wenn eine der möglichen Ursachen auf die Anwendungskonfiguration zutrifft, verwenden Sie die oben aufgeführten Informationen, um die Anwendungskonfiguration zu ändern bzw. die damit verbundenen Probleme zu beheben.
2.4 SQL Server Express-Benutzerinstanzen müssen auf freigegebenen Hostcomputern deaktiviert sein
ASP.NET 2.0 ist mit SQL Server Express 2005 integriert, um die automatische Erstellung der Datenbank bereitzustellen, die für viele der neuen ASP.NET 2.0-Anwendungsdienste erforderlich ist. Diese Funktionalität ist von der SQL Server Express-Unterstützung für die Generierung von Serverprozessen abhängig, die entweder mit der Identität des interaktiven Benutzers oder mit der Identität des Workerprozesses, der ASP.NET hostet, ausgeführt werden. In nicht vertrauenswürdigen Umgebungen (z. B. auf einem freigegebenen Hostserver) sollte die Generierung von SQL Server-Workerprozessen nicht aktiviert sein, um die unbeabsichtigte Freigabe von Daten zwischen ASP.NET-Anwendungen zu verhindern.
So beheben Sie dieses Problem
Wenn Sie SQL Server Express mit dem eigenständigen Installer installieren, können Sie die erweiterten Setupoptionen verwenden, um die Unterstützung für Benutzerinstanziierung zu deaktivieren.
Alternativ können Sie die Benutzerinstanziierung für eine vorhandene SQL Server Express-Installation wie folgt manuell deaktivieren:
-
Melden Sie sich als lokaler Administrator an, und öffnen Sie ein Befehlsfenster, indem Sie cmd.exe ausführen.
-
Falls osql.exe in den Verzeichnissen, die in der PATH-Umgebungsvariablen aufgelistet sind, nicht verfügbar ist, ändern Sie die Verzeichnisse in das SQL Server Express-Verzeichnis, das osql.exe enthält.
-
Stellen Sie eine Verbindung mit der übergeordneten SQL Server-Instanz her: osql E S .\sqlexpress
-
Geben Sie folgende SQL-Befehle aus:
exec sp_configure 'show advanced option', '1' go reconfigure with override go exec sp_configure 'user instances enabled', 0 go reconfigure with override go
2.5 Permanente Cookies für die Formularauthentifizierung haben nun dieselbe Timeouteinstellung wie sitzungsbasierte Cookies
In früheren ASP.NET-Versionen hatten permanente Fomularauthentifizierungscookies eine hartcodierte Lebensdauer von 50 Jahren. In ASP.NET 2.0 ist das Ablaufdatum für permanente Formularauthentifizierungscookies folgendermaßen festgelegt: aktueller Zeitpunkt plus dem Wert des "timeout"-Attributs aus der Konfiguration. Dies bedeutet, dass permanente Cookies standardmäßig eine Lebensdauer von 30 Minuten haben. Wenn Sie eine längere Lebensdauer festlegen möchten, müssen Sie für das "timeout"-Attribut einen höheren Wert festlegen. In ASP.NET 2.0 bedeutet dies, dass der neue Timeoutwert von den in sitzungsbasierten und den in permanenten Cookies gespeicherten Formularauthentifizierungstickets verwendet wird.
So beheben Sie dieses Problem
Wenn für permanente Cookies andere Timeoutwerte verwendet werden sollen, können Entwickler einen Verweis auf den Formularauthentifizierungscookie abrufen, nachdem das Cookie ursprünglich mit einer Methode wie FormsAuthentication.SetAuthCookie festgelegt wurde. Entwickler können anschließend durch Aufruf von Response.Cookies[FormsAuthentication.FormsCookieName] einen Verweis auf das Cookie abrufen. Entwickler können anschließend die Expires-Eigenschaft des sich ergebenden HttpCookie auf einen anderen Wert festlegen.
2.6 Falsches Verhalten der DeleteRole-Methode von AuthorizationStoreRoleProvider
Bei dem Versuch, eine nicht vorhandene Rolle zu löschen, löst die DeleteRole-Methode des Anbieters fälschlicherweise die Ausnahme "Element nicht gefunden" aus. Der Anbieter sollte stattdessen false zurückgeben. Bei dem Versuch, eine Rolle zu löschen, die vorhandene Benutzer enthält, gibt der Anbieter false zurück, anstatt eine Ausnahme auszulösen.
So beheben Sie dieses Problem
-
Schließen Sie alle Aufrufe der DeleteRole-Methode des Anbieters in einen Try-Catch-Block ein. Auf diese Weise wird sichergestellt, dass zukünftige Problembehebungen, die Ausnahmen beim Löschen aufgefüllter Rollen erneut aktivieren, keine Auswirkungen auf den vorhandenen Code haben.
-
Überprüfen Sie, ob die Rolle vorhanden war, bevor versucht wurde, sie zu löschen.
2.7 Es können Fehler bei der Ausführung des ASP.NET-Profilfeatures auftreten, wenn XML-Serialisierung und eine nicht standardmäßige Anwendungsidentität verwendet wird
Für das ASP.NET-Profilfeature wird die XML-Serialisierung als Standardmechanismus zur Serialisierung von Eigenschaften verwendet. Wenn die ASP.NET-Prozessidentität weder ASPNET (unter IIS 5.0 und IIS 5.1) noch NETZWERKDIENST (für IIS 6) ist, führt dies beim XML-Serialisierungsprozess zu einem Fehler mit folgender Ausnahme: "InvalidOperationException: Temporäre Klasse kann nicht generiert werden." Dasselbe Problem tritt beim Anwendungsidentitätswechsel auf. Diese Ausnahmen treten auf, weil XmlSerializer temporäre Klassendateien in das Verzeichnis %windir%\temp schreibt. Dieses Verzeichnis gewährt den ASP.NET-Standardkonten standardmäßig nur die Berechtigungen "Ordner auflisten/Daten lesen". Nicht standardmäßige ASP.NET-Konten können temporäre Dateien in dieses Verzeichnis schreiben, sind jedoch nicht dazu berechtigt, anschließend nach den von XmlSerializer verwendeten temporären Klassen zu suchen.
So beheben Sie dieses Problem
Für sichere Umgebungen sollten Entwickler einen anderen Serialisierungsmechanismus verwenden, d. h. entweder die binäre Serialisierung oder die Zeichenfolgenserialisierung. Für Anwendungen, bei denen es eher unwahrscheinlich ist, dass temporäre Klassendateien versehentlich anwendungsübergreifend freigegeben werden, kann dem Identitätswechsel des Workerprozesses oder der Anwendung die Berechtigung "Ordner auflisten/Daten lesen" für das Verzeichnis %windir%\temp gewährt werden.
2.8 ASP.NET-Sitzungszustandsbeschränkungen bei der Verwendung von SSE
SSE sollte nur in Entwicklungsumgebungen mit SQL Server-basiertem ASP.NET-Sitzungszustand verwendet werden, weil kein SQL Server-Agent-Dienst mit SSE installiert wird. Daher wird der Auftrag zur Bereinigung des Sitzungszustands nie ausgeführt, und die Sitzungszustandsdaten sammeln sich in der Datenbank an. Abgelaufene Sitzungen können manuell bereinigt werden, indem Sie eine Verbindung mit SSE herstellen und den folgenden Befehl ausführen: "EXECUTE DeleteExpiredSessions".
So beheben Sie dieses Problem
Verwenden Sie für Produktionsanwendungen die SQL Server 2005-Standardversionen.
2.9 AuthorizationStoreRoleProvider: Der Standardwert für ApplicationName verursacht einen Fehler vom Autorisierungs-Manager
Der Autorisierungs-Manager lässt die Verwendung des Zeichens "/" in Anwendungsnamen nicht zu. Falls applicationName in der Konfiguration nicht festgelegt wurde, folgt AuthorizationStoreRoleProvider der Logik anderer ASP.NET-Anbieter, um einen Standardwert für applicationName zu bestimmen. Bei Ausführung in ASP.NET führt dies zu einem Wert, der mit dem Zeichen "/" beginnt.
So beheben Sie dieses Problem
Legen Sie in der Konfiguration immer das applicationName-Attribut fest, wenn Sie AuthorizationStoreRoleProvider in einer ASP.NET-Anwendung verwenden.
2.10 Unter Windows 98 und Windows ME bewirkt das Debuggen einer Anwendung, die einen Webdienst verwendet, dass die Anwendung nicht mehr reagiert
Wenn Sie eine Anwendung, die einen Webdienst verwendet, unter Windows 98 oder Windows ME in Visual Studio 2005 debuggen, reagiert die Anwendung nicht mehr.
So beheben Sie dieses Problem
Um csm.dll zu deaktivieren, befolgen Sie die nachfolgenden Anweisungen:
-
Klicken Sie im Windows-Startmenü auf Ausführen.
-
Geben Sie im Dialogfeld Ausführen regedit.exe ein.
-
Wechseln Sie zu HKEY_CLASSES_ROOT\CLSID\{12A5B9F0-7A1C-4FCB-8163-160A30F519B5}.
-
Stellen Sie sicher, dass Sie den richtigen Registrierungsschlüssel verwenden, indem Sie überprüfen, ob InprocServer32\(default) den Wert ' <Laufwerk>:\Program Files\Common Files\Microsoft Shared\VS7Debug\csm.dll' besitzt.
-
Löschen Sie den Registrierungsschlüssel (HKEY_CLASSES_ROOT\CLSID\{12A5B9F0-7A1C-4FCB-8163-160A30F519B5}).
2.11 Zeichen für keine Leerstellen sind für Verknüpfungen in C#-Codeausschnitten unzulässig
C#-Codeausschnitte werden in XML in SNIPPET-Dateien definiert. Das Schema kann beispielsweise den Tag <Shortcut></Shortcut> enthalten. Verknüpfungen ermöglichen das schnelle Einfügen von Ausschnitten. Der Benutzer muss lediglich die entsprechende Verknüpfungszeichenfolge eingeben und anschließend die TAB-TASTE drücken.
In Verknüpfungen sind viele Unicode-Zeichen zulässig. Zeichen für keine Leerstellen in komplexen Skriptsprachen werden jedoch nicht als gültige Verknüpfungszeichen erkannt. Daher können einige Zeichenfolgen in komplexen Skriptsprachen nicht als Verknüpfungen verwendet werden. Wenn eine Verknüpfung, die ein Zeichen für keine Leerstellen enthält, eingegeben und anschließend die TAB-TASTE gedrückt wird, wird anstelle eines Codeausschnitts ein Tabulatorzeichen eingefügt.
Hinweis: Die Ausschnittsverknüpfung wird weiterhin in IntelliSense angezeigt.
So beheben Sie dieses Problem
-
Wählen Sie einen Unicode-Verknüpfungsnamen ohne Zeichen für keine Leerstellen aus.
-
Fügen Sie den Ausschnitt über die Codeausschnittsauswahl-UI ein, anstatt Verknüpfungen zu verwenden.
2.12 System.Net hat die Logik für das Timeout einer DNS-Auflösung entfernt, wenn es kleiner ist als das Timeout in der nicht verwalteten API, die von System.Net zum Ausführen der Auflösung aufgerufen wird
In früheren .NET Framework-Versionen fügte der DNS von System.Net dem DNS-Typ Timeoutlogik hinzu, um das lange systemeigene Timeout zu umgehen. Ohne ein genaues DNS-Timeout können keine genauen Timeouts für andere Webanforderungen festgelegt werden. Zur Implementierung dieses Timeouts wird die DNS-Auflösung allerdings in einen anderen Thread verschoben. Wenn die Threadpoolstufe niedrig ist, wartet die DNS-Auflösung bis zum Timeout auf einen verfügbaren Thread, sodass eine Ausnahme ausgelöst wird. Um diese Ausnahme zu verhindern, wurde die DNS-Timeoutlogik entfernt.
So beheben Sie dieses Problem
Es ist keine Lösung bekannt.
2.13 SqlCacheDependency erfordert Initialisierung mit einem Aufruf von System.Data.SqlClient.SqlDependency.Start
Da die Funktionsweise von Abfragebenachrichtigungen mit SQL Server 2005 geändert wurde, müssen Entwickler vor dem Verwenden von SqlCacheDependency mindestens einmal die Start-Methode für SqlDependency aufrufen. Ein logischer Ort zum Aufruf von Start befindet sich in der Application_Start-Methode einer Webanwendung in global.asax:
void Application_Start(object sender, EventArgs e)
{
System.Data.SqlClient.SqlDependency.Start("connection string");
}
Es muss dieselbe Verbindungszeichenfolge verwendet werden wie bei der Ausgabe von Befehlen zur Verwendung mit SqlCacheDependency.
2.14 System.Net fügt beim Aufruf von WebClient.UploadValues() kein CRLF-Zeichen mehr hinzu
In früheren .NET Framework-Versionen wurde dem geuploadeten Inhalt beim Aufruf von WebClient.UploadValues() ein CRLF hinzugefügt, was zu Serveranwendungsfehlern führte. Die CRLF-Zeichen verletzen das in der HTML 4.01-Spezifikation erläuterte Codierungsschema application/x-www-form-urlencoded für den Inhaltstyp. Das CRLF wird nicht mehr hinzugefügt.
So beheben Sie dieses Problem
Fügen Sie mit WebClient.UploadData() das CRLF hinzu, und kompilieren Sie erneut die Anwendung, oder beheben Sie das Problem der Serveranwendung, sodass diese kein CRLF-Zeichen erwartet.
2.15 UriBuilder löscht nicht mehr die Fragment- oder Abfrageeigenschaften, nachdem diese festgelegt wurden
Bei UriBuilder handelt es sich um einen Typ, mit dem eine URI-Instanz Stück für Stück erstellt werden kann. In früheren .NET Framework-Versionen konnten die Abfrage- und Fragmenteigenschaften nicht gleichzeitig festgelegt werden. Dieser Fehler wurde in Version 2.0 behoben. Die Abfrage- und Fragmenteigenschaften werden nun festgelegt, ohne dass dabei Felder versehentlich gelöscht werden. Die Logik von Anwendungen, die das frühere Verhalten umgangen haben, muss möglicherweise angepasst werden, um fehlerhaftes Verhalten zu vermeiden.
So beheben Sie dieses Problem
Es ist keine Lösung bekannt.
2.16 Die Berechtigungen, die erforderlich sind, bevor die im system.net-Element einer Anwendungskonfigurationsdatei vorhandenen Werte angewendet werden, wurden geändert
Die Berechtigungen, die erforderlich sind, um die im System.Net-Element einer Anwendungskonfigurationsdatei vorhandenen Einstellungen anzuwenden, wurden in der aktuellen .NET Framework-Version geändert. Nun sind zum Anwenden von Werten aus der Konfigurationsdatei dieselben Berechtigungen erforderlich, die beim Ändern der Einstellung im Code für die verknüpfte Eigenschaft erforderlich sind.
So beheben Sie dieses Problem
Es ist keine Lösung bekannt.
2.17 Beim Senden einer FTP-Anforderung gefolgt von einer FTP-Anforderung über SSL (FTPs) an dasselbe Verzeichnis wird die Ausnahme "Datei kann nicht gefunden werden" ausgelöst
Wenn eine Anwendung eine FTP-Anforderung an einen Server und anschließend eine weitere FTP-Anforderung mit SSL-Aktivierung an denselben Server und Pfad ausgibt, tritt bei der zweiten Anforderung ein Fehler auf. Es wird eine Ausnahme ausgelöst, die angibt, dass die Datei nicht gefunden wurde. Die zweite Anforderung wird jedoch erfolgreich ausgeführt, wenn sie nicht an denselben Pfad gesendet wird.
2.18 WebRequest.ServicePoint.Address erfordert nur dann unbeschränkte Webberechtigung, wenn der entsprechende Dienstpunkt ein Proxyserver ist
Diese neue Anforderung verhindert, dass Anwendungen mit teilweiser Vertrauenswürdigkeit Netzwerkproxyadressen erkennen. Wenn die Adresse auf einen Proxyserver zeigt, erhalten teilweise vertrauenswürdige Anwendungen, die die ServicePoint.Address-API verwenden, möglicherweise eine SecurityException.
So beheben Sie dieses Problem
Verwenden Sie HttpWebRequest.Address.
2.19 Ausnahmen von der Gleichwertigkeit des 32-Bit- und 64-Bit-Verhaltens bei Visual Studio und .NET Framework
-
FrontPage-Servererweiterungen für IA64 WOW64
Wenn mit .NET Framework 1.1 eine Website auf einem IA64-Remotecomputer erstellt wird, auf dem .NET Framework 1.1 ausgeführt wird, wird FrontPage nicht unterstützt. Einige Basisfunktionen funktionieren jedoch über den Dateifreigabemechanismus.
-
Die Ausführung von J# auf systemeigenen 64-Bit-Plattformen wird nicht unterstützt. J#-Code kann nur in WOW64 auf 64-Bit-Plattformen ausgeführt werden.
-
SQL Server Express wird auf 64-Bit-Plattformen für .NET Framework 2.0 nicht unterstützt.
-
Bei ASP.NET-Anwendungen mit hohen Kapazitätsanforderungen, die unter .NET Framework 1.1 in WOW64 für IA64 ausgeführt werden, können keine Garantien hinsichtlich Leistung oder Skalierbarkeit übernommen werden.
-
Datenhaltepunkte funktionieren nicht, wenn Visual Studio 2005 unter IA64 in WOW64 ausgeführt wird.
-
In Visual Studio 2005 funktioniert das Debuggerfeature Bearbeiten und Fortfahren nicht in 64-Bit-Umgebungen. Es funktioniert jedoch in 64-Bit-WOW-Umgebungen.
-
VC-ATL-Ausnahmen in Visual Studio 2005:
-
Das Buildsystem registriert keine DLL-Dateien bei der Verwendung von 64-Bit-Umgebungen unter WOW64.
-
Fehler ""%1 ist keine gültige Win32-Anwendung"" beim Debuggen eines standardmäßigen ATL-Serverprojekts auf einem 64-Bit-Computer.
-
Die ausführbare Datei zum Debuggen und der URL werden für ATL-Serverprojekte mit 64-Bit-Konfigurationen nicht vorab aufgefüllt.
-
Internet Explorer wird nicht mit der vom Benutzer angegebenen SRF-Datei gestartet, wenn ein 64-Bit-ATL-Serverprojekt debuggt wird.
-
Als Debuggertyp für 64-Bit-ATL-Serverkonfigurationen wird standardmäßig ein lokaler Windows-Debugger anstelle eines Webdienstdebuggers ausgeführt.
-
Debugeigenschaften werden nicht in neue Konfigurationen eines Projekts übernommen. Wenn Sie beispielsweise mit einem ATL-Serverprojekt in x86 starten und anschließend dafür eine 64-Bit-Konfiguration erstellen, wird das Debuggen erst dann ordnungsgemäß ausgeführt, wenn Sie Internet Explorer als zu debuggende Komponente verwenden.
-
-
Interopdebuggen (verwaltetes + nicht verwaltetes Debuggen im gemischten Modus) wird in systemeigenen 64-Bit-Umgebungen nicht unterstützt. Es funktioniert jedoch in 64-Bit-WOW-Umgebungen.
-
Einige MDAs werden auf 64-Bit-Plattformen nicht unterstützt. Beispiele: Reentrancy, LoaderLock, PInvokeStackImbalance.
-
Systeminterne MMX-Funktionen werden von IA64- und x64 C++-Compilern nicht unterstützt.
-
Inlineassemblys werden von IA64- und x64-C++-Compilern nicht unterstützt.
-
Die meisten höheren Sprachkonstrukte werden von x64 MASM nicht unterstützt.
MASM unterstützt nicht IA64. Im Lieferumfang ist jedoch der Intel-Assembler (ias.exe) enthalten. -
Der VC++-Compilerschalter /ARCH:SSE wird von x64- und IA64-VC++-Compilern nicht unterstützt.
-
Die System.Diagnostics.Process.MainModule-API und die System.Diagnostics.Process.Modules-API werden unter WOW64 in einem untergeordneten 64-Bit-Prozess nicht ordnungsgemäß ausgeführt.
-
32-Bit- und 64-Bit-COM+-ServicedComponents mit derselben GUID/CLSID können nicht gleichzeitig registriert werden.
-
Das 64-Bit-SDK enthält keine systemeigene DBGCLR. DBGCLR ist nur unter WOW64 verfügbar.
-
Das 64-Bit-SDK enthält keine systemeigene DEXPLORE.EXE. DEXPLORE.EXE ist nur in WOW64 verfügbar.
-
Für x64 und IA64 gibt es keine Bootstrapper-Manifestpakete.
Für ClickOnce oder andere Anwendungen ist kein 64-Bit-Bootstrapper verfügbar. Bei dem Versuch, auf einem beliebigen 64-Bit-Computer, auf dem .NET Framework nicht installiert ist, eine ClickOnce-Anwendung zu installieren, wird folgende Fehlermeldung angezeigt: "Diese Version von .NET Framework 2.0 wird auf einem 64-Bit-Betriebssystem nicht unterstützt. Wenden Sie sich an den Hersteller der Anwendung."
Dies geschieht selbst bei Anwendungen, die ausschließlich als 32-Bit-Anwendungen erstellt wurden und normalerweise unter WOW64 ausgeführt werden.
Visual Studio wird unter IA64 nicht installiert.Visual Studio 2005 wird unter IA64 nicht installiert (keine Entwurfszeitunterstützung für IA64). Visual C++ verfügt über einen systemeigenen Installer für IA64-Befehlszeilentools.
-
Nur Visual Studio Team System ermöglicht das Erstellen von Anwendungen für IA64.
-
P/Invoke-Signaturen mit "blitfähigen" Typen (Typen mit gleicher Darstellung in verwaltetem und nicht verwaltetem Code) werden auf 64-Bit-Plattformen anders behandelt. Da P/Invoke auf 64-Bit-Plattformen anders implementiert wird, kann es vorkommen, dass ungültige P/Invoke-Signaturen, die auf 32-Bit-Plattformen zufällig funktioniert haben, auf 64-Bit-Plattformen nicht funktionieren.
-
Visual Studio 2005 Tools for Office (VSTO) wird auf 64-Bit-Plattformen nicht unterstützt.
2.20 Beim Ausführen eines Umgestaltungsvorgangs in einer C#-Website werden möglicherweise Buildfehler gemeldet, obwohl tatsächlich keine vorhanden sind
Wenn der Benutzer einen Umgestaltungsbefehl in einer C#-Website ausführt, die keine Buildfehler enthält, kann in bestimmten Fällen eine Warnung mit dem Hinweis angezeigt werden, dass das Projekt oder zugehörige Abhängigkeiten aktuell nicht erstellt und Verweise möglicherweise nicht aktualisiert werden.
Dieses Dialogfeld kann problemlos ignoriert werden, indem der Benutzer entweder auf die Schaltfläche Weiter oder auf Vorschau klickt. Die Umgestaltung wird erfolgreich ausgeführt, und alle Verweise werden aktualisiert.
Nachstehend werden Beispiele für allgemeine Projektkonfigurationen aufgeführt, in denen diese Warnung angezeigt wird:
-
Von früheren Visual Studio-Versionen migrierte Webprojekte, die im Webverzeichnis die Datei global.asax und im Verzeichnis App_Code die Datei global.asax.cs enthalten.
-
Webprojekte, in denen Webseiten auf Web-Benutzersteuerelemente verweisen, die wiederum auf Typen verweisen, die im Verzeichnis App_Code deklariert sind.
So beheben Sie dieses Problem
Es ist keine Lösung bekannt. Die Warnung kann jedoch problemlos ignoriert werden.
2.21 System.Net registriert nun eine FtpWebRequest-Standardimplementierung, die unter Umständen bewirkt, dass Anwendungen mit einer eigenen FTP-Komponente unterbrochen werden
Vor .NET Framework, Version 2.0, konnten Anwendungen eine Komponente registrieren, um FTP-Anforderungen mit dem erweiterbaren austauschbaren Protokollframework von System.Net zu behandeln. Komponenten zum Behandeln verschiedener Webanforderungen werden registriert, indem die jeweilige Komponente einem bestimmten URI-Präfix zugeordnet wird. Daraufhin wird jede Webanforderung, die mit diesem Präfix übereinstimmt, von der entsprechenden Komponente behandelt. In .NET Framework 2.0 unterstützt nun System.Net eine FtpWebRequest-Komponente, die standardmäßig für das Präfix "ftp:" registriert wird. Die (vor dieser Version) für dieses Präfix registrierten Anwendungen werden möglicherweise unterbrochen, weil das Präfix (FTP) bereits belegt ist.
So beheben Sie dieses Problem
Aktualisieren Sie die Anwendungskonfigurationsdatei, um die FTP-Standardprotokollkomponente zu entfernen, bevor Sie Ihre eigene FTP-Komponente registrieren:
<system.net> <webRequestModules> <remove prefix = "ftp:" /> </webRequestModules> </system.net>
2.22 In .NET Framework 2.0 verhält sich GlobalProxySelection.Select anders als in Version 1.1, wenn die Datei machine.config ein leeres System.Net-Tag enthält
Wenn in .NET Framework, Version 1.1, in der Datei machine.config ein leeres System.Net-Element festgelegt wird, gibt GlobalProxySelection.Select eine leere Webproxyinstanz zurück, die angibt, dass kein Proxy verwendet werden soll. Der neue Standard der Version 2.0 gibt vor, dass in einem solchen Fall die Systemproxyeinstellungen (dieselben, die in Internet Explorer festgelegt sind) verwendet werden.
So beheben Sie dieses Problem
Bearbeiten Sie die Datei machine.config wie folgt, um die Standardproxyeinstellungen zu deaktivieren.
<system.net> <defaultProxy enabled="false" /> </system.net>
2.23 System.Uri enthält nicht die IPv6-Bereichskennung mit dem Host
Wenn in früheren .NET Framework-Versionen eine URI-Instanz unter Verwendung einer IPv6-Adresse erstellt wurde, war die Bereichskennung immer in der Hostadresse enthalten. Die Bereichskennung verweist auf den Index eines lokalen Netzwerkadapters und ist für Remotehosts ohne Bedeutung. In der Syntax der Bereichskennung wird außerdem das Zeichen '%' verwendet, was einen Konflikt mit dem Escapeformat '%hh' verursacht. Wenn die Bereichskennung im Host enthalten ist, wird die System.Uri-Funktionalität, mit anderen URI-Parsern und -Resolvern zusammenzuarbeiten, außer Kraft gesetzt. In Version 2.0 fügt System.Uri nicht mehr die Bereichskennung mit einem IPv6-Host in einer URI-Instanz hinzu. System.Uri hat zusätzlich DnsSafeHost als neue Eigenschaft hinzugefügt, die die Bereichskennung mit einer IPv6-Hostadresse zurückgibt.
So beheben Sie dieses Problem
Verwenden Sie Uri.DnsSafeHost, um die Bereichskennung mit einer IPv6-Hostadresse zurückzugeben.
2.24 Wenn über die System.Transactions-Konfiguration ein Cluster als Remoteproxy festgelegt wird, wird beim Clusterfailover möglicherweise eine TransactionException ausgelöst
Wenn in der Konfiguration ein Cluster als Remoteproxy angegeben wird, indem für DistributedTransactionManagerName ein Cluster festgelegt wird, wird beim Clusterfailover möglicherweise eine TransactionException ausgelöst.
So beheben Sie dieses Problem
Um einen Cluster als Remoteproxy anzugeben, verwenden Sie die Komponentendienste MMC, um in der Konfiguration von MSDTC festzulegen, dass der Cluster als Remote-MSDTC verwendet werden soll.
2.25 Die Meldung "Fehler bei Microsoft C# 2005 IntelliSense" wird möglicherweise angezeigt, wenn Sie verschiedene Aktionen in der IDE ausführen
In bestimmten Fällen wird möglicherweise die Meldung "Fehler bei Microsoft C# 2005 IntelliSense. Entschuldigen Sie die Unannehmlichkeiten." angezeigt, wenn im Editor verschiedene Aktionen ausgeführt werden. In einigen Fällen liegt das daran, dass beim Abrufen der Quelldaten ein Fehler aufgetreten ist.
Beispielsweise könnte dieses Fehlerdialogfeld bei folgenden Aktionen ausgelöst werden:
-
Umbennen eines externen Alias.
-
Ausführen einer Suche nach allen Verweisen in einem Webprojekt ohne das Attribut 'runat="server"'.
Hierbei handelt es sich um keinen schwerwiegenden Fehler. Der Benutzer kann seine Arbeit sicher und ohne Datenverlust fortsetzen, indem er auf die Schaltfläche zum Senden eines Berichts klickt.
So beheben Sie dieses Problem
Es gibt zwei Möglichkeiten, die Anzeige aller nicht kritischen Fehlermeldungen vom C#-Sprachendienst zu deaktivieren. Ändern Sie hierzu die Registrierung unter dem Registrierungspfad:
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\CSharp\Options\Editor]
(1) "Watson_ReportExceptions"=dword:00000001
Durch Hinzufügen dieses Registrierungsschlüssels mit dem angegebenen Wert wird die Fehlerberichterstattung vollständig deaktiviert.
Hinweis: Wenn Sie diesen Registrierungsschlüssel verwenden und alle nicht schwerwiegenden Fehlermeldungen vom C#-Sprachendienst deaktivieren, wird potenziell auch die Ermittlung von Feedback zu Szenarios verhindert, die nichts mit diesem Fehler zu tun haben.
(2) "Watson_DeferSendingUntilLater"=dword:00000000
Wenn Sie diesen Registrierungspfad mit dem angegebenen Wert hinzufügen, wird das Anzeigen der Meldung deaktiviert. Das Senden von Feedback an Microsoft ist jedoch weiterhin aktiviert. Die IDE wird für einen kurzen Zeitraum nicht reagieren, da die zu sendenden Informationen ermittelt werden.
2.26 NullReferenceException wird bei dem Versuch ausgelöst, die DistributedIdentifier-Transaktion während der Transaktionsheraufstufung abzurufen
Der Versuch, DistributedIdentifier für eine Transaktion abzurufen, während die Transaktion heraufgestuft wird, kann eine NullReferenceException auslösen.
So beheben Sie dieses Problem
Es gibt zwei Möglichkeiten, dieses Problem zu umgehen.
Stellen Sie sicher, dass der Zugriff auf die Transaktion synchronisiert ist.
– oder –
Stellen Sie sicher, dass die Transaktion vor dem Aktivieren der DistributedIdentifier-Eigenschaft heraufgestuft wird.
2.27 Die mit Webverweis hinzufügen generierten ASP.NET-Webdienstproxys verwenden denselben URL aus der Konfigurationsdatei, selbst wenn der Dienst mehrere Endpunkte mit verschiedenen URLs hat
Wenn ein Webverweis in Visual Studio 2005 hinzugefügt wird, wird der URL des Diensts automatisch aus dem AppSettings-Abschnitt der Konfigurationsdatei übernommen. Wenn der Webdienst mehrere Endpunkte mit verschiedenen URLs hat, werden mehrere Proxytypen generiert, die jedoch alle denselben aus der Konfigurationsdatei übernommenen URL-Wert verwenden.
So beheben Sie dieses Problem
Es gibt zwei Möglichkeiten:
-
Bearbeiten Sie das WSDL-Dokument, und gliedern Sie jeden Dienst in einem separaten Dokument auf.
-oder-
-
Bearbeiten Sie die Konfigurationsdatei, um jedem Webdienst einen Schlüssel hinzuzufügen. Lesen Sie anschließend die Werte in den Code unter Verwendung von System.Configuration.ConfigurationSettings.AppSettings. Legen Sie die URL-Eigenschaft für die entsprechenden Proxyinstanzen fest, indem Sie diese Werte verwenden.
2.28 Die standardmäßige Unterstützung von Nullable<T> in generierten ASP.NET-Webdienstproxys kann vorhandenen Code außer Kraft setzen, wenn der Proxy neu generiert wird
Wenn ein Schema importiert wird, das das Attribut nullable="true" für einen ASP.NET-Webdienst enthält, enthält der generierte Proxy Nullable<T>-Typen, während das Attribut früher ignoriert wurde. Diese Änderung kann Entwurfszeit- oder Laufzeitunterbrechungen in Anwendungen verursachen.
So beheben Sie dieses Problem
Sie haben folgende Möglichkeiten, dieses Problem zu umgehen: das erneute Generieren der Proxytypen vermeiden, den Code mithilfe des neuen Nullable<T>-Musters umgehen, oder das Schema so ändern, dass es nicht mehr das Attribut nullable="true" verwendet.
2.29 Wenn die Proxyeigenschaft in einer Webdienstproxy-Instanz auf NULL festgelegt wird, wird dadurch nicht erzwungen, dass die Anforderung direkt an den Server gesendet wird
Wenn die Proxyeigenschaft in einer Webdienstproxy-Instanz auf NULL festgelegt wird, soll damit erzwungen werden, dass die Anforderung jegliche Webproxyserver-Einstellungen umgeht und direkt an den Server gesendet wird. Diese Funktionalität funktioniert zum jetzigen Zeitpunkt jedoch nicht. Der NULL-Wert wird ignoriert, und stattdessen werden die konfigurierten Webproxyserver-Einstellungen verwendet.
So beheben Sie dieses Problem
Sie können die Proxyeigenschaft für den zugrunde liegenden WebRequest direkt durch Ableitung aus dem Proxytyp und Überschreiben der GetWebRequest-Methode festlegen:
protected override WebRequest GetWebRequest(Uri uri)
{
WebRequest req = base.GetWebRequest(uri);
req.Proxy = this.proxy;
return req;
}
2.30 Verwenden von .NET Remoting und Laufzeitserialisierung auf verschiedenen .NET Framework-Versionen
Wenn Daten zwischen Anwendungen ausgetauscht werden, die auf verschiedenen .NET Framework-Versionen ausgeführt werden (unter Verwendung von .NET Remoting- oder Laufzeitserialisierung), können Ausnahmen auftreten. Die Ausnahmen geben an, dass bestimmte Typen in unterschiedlichen Framework-Versionen nicht kompatibel sind. Daher können diese Typen nicht von einer Framework-Version an eine andere Framework-Version gesendet werden.
.NET Framework 2.0 enthält eine Technologie, die als versionstolerante Serialisierung bezeichnet wird, mit der dieses Problem behoben werden kann. Für frühere Framework-Versionen besteht dieses Problem jedoch weiterhin. Daher wird ein Patch zur Verfügung gestellt, der einige Funktionen der versionstoleranten Serialisierung in .NET Framework 1.1 einfügt. Für diesen Patch ist Service Pack 1 erforderlich. Nachdem der Patch installiert wurde, kann eine unter Framework ausgeführte Anwendung mit einer Anwendung kommunizieren, die unter .NET Framework 2.0 ausgeführt wird, ohne dass dieses Versionsproblem auftritt. Es ist nicht geplant, diesen Patch für .NET Framework 1.0 bereitzustellen.
Beachten Sie, dass die versionstolerante Serialisierung nur dann die Versionsprobleme behebt, wenn die binäre Serialisierung verwendet wird (entweder direkt oder über .NET Remoting). Falls die SOAP-Serialisierung (entweder direkt über die SoapFormatter-Klasse oder über .NET Remoting) für verschiedene Framework-Versionen verwendet wird, können die erläuterten Versionsprobleme weiterhin auftreten.
So beheben Sie dieses Problem
Informationen zum Abrufen dieses Patchs finden Sie im folgenden Knowledge Base-Artikel: http://support.microsoft.com/?kbid=907262.
2.31 Die Angabe einer nicht standardmäßigen Ablaufverfolgungsüberwachung für die System.Transactions-Ablaufverfolgung funktioniert nicht bei teilweiser Vertrauenswürdigkeit
Die Angabe einer bestimmten Ablaufverfolgungsüberwachung für die System.Transactions-Ablaufverfolgung in der Konfiguration wird bei teilweiser Vertrauenswürdigkeit nicht unterstützt und löst eine Ausnahme aus.
So beheben Sie dieses Problem
Die standardmäßige Ablaufverfolgungsüberwachung wird bei teilweiser Vertrauenswürdigkeit unterstützt, sodass die Ablaufverfolgungen von der Standardüberwachung aufgefangen werden und in debug.outputstring gedruckt werden. Diese Ablaufverfolgungen können mithilfe von DBMon.exe bei teilweiser Vertrauenswürdigkeit angezeigt werden.
2.32 Die Berechnungen von Datum und Uhrzeit in Webdienst- oder XML-Serialisierungsszenarios können nach der Migration zu .NET Framework 2.0 fehlerhaft sein
In .NET Framework 2.0 wird ein anderes Verfahren verwendet, um Datums- und Uhrzeitangaben in XML zu schreiben bzw. aus XML zu lesen. Diese Änderung betrifft in erster Linie folgende Szenarios:
-
Szenarios mit Zeitangaben, für die die Zeitzone UTC (Coordinated Universal Time) oder keine Zeitzone angegeben wurde.
-
Interoperabilitätsszenarios mit Software von Drittanbietern, in denen Zeitwerte in XML geschrieben werden, wobei die Zeitzone UTC oder keine Zeitzone angegeben wird.
Die Änderungen können bewirken, dass Berechnungen und Vergleiche für bestimmte Datums- und Zeitangaben fehlerhaft werden. In solchen Fällen ist es unter Umständen erforderlich, das frühere Datums-/Zeitverhalten wiederherzustellen.
So beheben Sie dieses Problem
Um das frühere Datums-/Zeitverhalten wiederherzustellen, wenden Sie folgende Konfigurationsänderung an:
<system.xml.serialization> <dateTimeSerialization mode="Local" /> </system.xml.serialization>
2.33 Windows-Benutzerprofile für die automatische ASP.NET-Datenbankerstellung mit SQL Server Express und IIS
Der automatische MDF-Erstellungsprozess von ASP.NET für SQL Server-Anbieter unter SQL Server Express und IIS funktioniert nur, wenn IIS entweder als lokales ASP.NET-Computerkonto oder als NT-AUTORITÄT\NETZWERKDIENST ausgeführt wird. Der automatische Erstellungsprozess funktioniert außerdem, wenn die Entwicklung mithilfe von Cassini (d. h. mithilfe dateibasierter Webserver) erfolgt. Wenn bei der Entwicklung für IIS allerdings ein anderes lokales Benutzerkonto oder ein Domänenbenutzerkonto verwendet wird, tritt beim automatischen Datenbank-Erstellungsprozess ein Fehler auf, weil diese Konten kein auf dem Webserver verfügbares Windows-Benutzerprofil aufweisen.
So beheben Sie dieses Problem
Für dieses Problem ist keine Lösung bekannt. Die automatische Datenbankerstellung mit SSE für IIS-basierte Websites funktioniert nur für ASPNET- und NETZWERKDIENST-Konten.
2.34 Unicode-Ersatzzeichenverhalten bei ASP.NET-Anbietern, die SQL Server 7.0 oder 2000 verwenden
ASP.NET-Anbieter, die SQL Server verwenden, sind auf die Ebene der Unterstützung von Unicode-Ersatzzeichen beschränkt, die von SQL Server 7.0 und SQL Server 2000 bereitgestellt wird. SQL Server 7.0 und 2000 können Ersatzpaare verlustfrei speichern und abrufen. Es gibt allerdings keinen linguistischen Vergleich für Ersatzzeichen. Bei Verwendung dieser SQL Server-Versionen werden Ersatzzeichen bei Vergleichsvorgängen und Prüfungen auf Eindeutigkeit ignoriert. Dies bedeutet beispielsweise, dass SqlMembershipProvider zwei Benutzernamen, die nur Ersatzzeichen enthalten, als identisch interpretiert. Dieses Verhalten verursacht beim Versuch, einen zweiten Benutzer mit einem Benutzernamen zu erstellen, der sich nur durch Ersatzzeichen von dem vorhandenen Benutzer unterscheidet, eine Verletzung der Eindeutigkeitseinschränkung.
So beheben Sie dieses Problem
Für diese Versionen von SQL Server ist keine Lösung bekannt.
2.35 FileWebRequest.PreAuthenticate gibt nur false zurück
Typen, die von WebRequest erben, erben eine PreAuthenticate-Eigenschaft. Diese Eigenschaft ermöglicht, dass Authentifizierungsinformationen zusammen mit der Anforderung gesendet werden, ohne auf eine Anfrage des Servers zu warten. Da die Vorauthentifizierung von FileWebRequest nicht unterstützt wird, müsste die zugehörige PreAuthenticate-Eigenschaft immer false zurückgeben. Wenn in früheren .NET Framework-Versionen die PreAuthenticate-Eigenschaft von einer Anwendung auf true festgelegt wurde, gab sie immer true zurück, wenn ihr Wert später abgefragt wurde. Dies ist jetzt nicht mehr der Fall. Die FileWebRequest's PreAuthenticate-Eigenschaft gibt immer false zurück.
So beheben Sie dieses Problem
Benutzer sollten die PreAuthenticate-Eigenschaft für FileWebRequest nicht verwenden.
2.36 Verwenden generischer Typen mit .NET Remoting- und SOAP-Serialisierung
Die .NET Remoting-Technologie unterstützt sowohl die binäre Serialisierung als auch die SOAP-Serialisierung. Dies bedeutet, dass Remotemeldungen in einem Microsoft-spezifischen Binärformat oder als SOAP-XML dargestellt werden. Generische Typen (ein neues Feature in .NET Framework 2.0) können allerdings nur mit der binären Serialisierung verwendet werden. Die Verwendung generischer Typen mit der SOAP-Serialisierung wird weder über .NET Remoting noch durch direkte Verwendung der SoapFormatter-Klasse unterstützt.
So beheben Sie dieses Problem
Für dieses Problem ist keine Lösung bekannt.
2.37 Beim Ausführen eines Umgestaltungsvorgangs in einer C#-Website werden möglicherweise Buildfehler gemeldet, obwohl tatsächlich keine vorhanden sind
Wenn der Benutzer einen Umgestaltungsbefehl in einer C#-Website ausführt, die keine Buildfehler enthält, kann in bestimmten Fällen eine Warnung mit dem Hinweis angezeigt werden, dass das Projekt oder zugehörige Abhängigkeiten aktuell nicht erstellt und Verweise möglicherweise nicht aktualisiert werden.
Dieses Dialogfeld kann problemlos ignoriert werden, indem der Benutzer entweder auf die Schaltfläche Weiter oder auf Vorschau klickt. Die Umgestaltung wird erfolgreich ausgeführt, und alle Verweise werden aktualisiert.
Nachstehend werden Beispiele für allgemeine Projektkonfigurationen aufgeführt, in denen diese Warnung angezeigt wird:
-
Von früheren Visual Studio-Versionen migrierte Webprojekte, die im Webverzeichnis die Datei global.asax und im Verzeichnis App_Code die Datei global.asax.cs enthalten.
-
Webprojekte, in denen Webseiten auf Web-Benutzersteuerelemente verweisen, die wiederum auf Typen verweisen, die im Verzeichnis App_Code deklariert sind.
So beheben Sie dieses Problem
Für dieses Problem ist keine Lösung bekannt, die Warnung kann jedoch problemlos ignoriert werden.
2.38 Features zur Versionszuweisung funktionieren in manchen Fällen nicht, wenn generische Typen mit .NET Remoting oder binärer Serialisierung verwendet werden
Sowohl .NET Remoting als auch die binäre Serialisierung können in einem lose verknüpften Modus arbeiten (ausgewählt durch Festlegen von FormatterAssemblyStyle auf Einfach, includeVersions auf False und strictBinding auf False), wobei die Version der Assembly eines serialisierten Typs nicht mit der Version der Assembly übereinstimmen muss, aus der der Typ bei der Deserialisierung geladen wird. Dieses Feature soll die Versionszuweisung vereinfachen. Beispiel: Ein .NET Remoting-Server kann aktualisiert werden, ohne dass die Clients ebenfalls aktualisiert werden müssen.
In einigen Fällen funktioniert dieser Mechanismus jedoch nicht. Die Deserialisierung kann insbesondere bei der Verwendung von generischen Typen im lose verknüpften Modus fehlschlagen, wenn sich die Version der Assembly des generischen Parametertyps ändert. Beispiel: Wenn der generische Typ MyType1 mit einem Typparameter des Typs MyType2 deserialisiert wird, kann die Deserialisierung fehlschlagen, wenn die Version der Assembly mit MyType2 bei der Deserialisierung von der Version bei der Serialisierung abweicht.
So beheben Sie dieses Problem
Um diese Einschränkung zu umgehen, vermeiden Sie entweder die Verwendung von generischen Begriffen in .NET Remoting bzw. bei binärer Serialisierung wenn es wichtig ist, eine Version zuzuweisen, oder verwenden Sie das Feature zur Umleitung der Assemblybindung von .NET Framework, um die Anforderung zum Laden einer nicht vorhandenen Version der Assembly an eine Version umzuleiten, die auf dem Computer, der die Deserialisierung ausführt, vorhanden ist. Eine andere mögliche Vorgehensweise ist, das AssemblyResolve-Ereignis zu verwenden, um das Fehlschlagen des Ladens einer Assembly zu erkennen und zu versuchen, die Assembly erneut unter Verwendung nur eines Teils des Namens zu laden.
2.39 Wenn KeepAlive für FtpWebRequest aktiviert ist und ein Befehl zum Auflisten von Verzeichnissen gefolgt von einem Befehl zum Abrufen einer Datei ausgegeben wird, ändert sich der Dateipfad, der in der Anforderung gesendet wird
Wenn die KeepAlive-Eigenschaft für FtpWebRequest auf true festgelegt ist, führt das Ausgeben eines Befehls zum Auflisten von Verzeichnissen gefolgt von einem Befehl zum Abrufen einer Datei dazu, dass der bei der Anforderung verwendete Dateipfad geändert wird. An den Pfad der angeforderten Datei wird ein zusätzliches Pfadtrennzeichen angehängt. Dieses Verhalten hat nur für manche FTP-Server nachteilige Auswirkungen und führt auf solchen Servern dazu, dass eine Fehlermeldung ausgegeben wird, dass die Datei nicht gefunden wurde.
So beheben Sie dieses Problem
Legen Sie für die Anforderung des Befehls zum Abrufen der Verzeichnisliste die KeepAlive-Eigenschaft auf false und anschließend für weitere Abrufvorgänge wieder auf true fest.
3. Programmierbarkeit für intelligente Geräte
3.1 F11 in DLL-Funktion funktioniert nicht für X86 SmartDevice-Projekt
-
Erstellen Sie eine Win32-Projekt-DLL für intelligente Geräte mit einer Funktion DllFunc mit beliebigem Code und einem Export dieser Funktion durch die DLL für die x86-Plattform.
-
Erstellen Sie eine EXE-Datei für das Win32-Projekt für intelligente Geräte, das diese DLL mit LoadLibrary lädt und die derselben Projektmappe hinzugefügte DllFunc aufruft. Stellen Sie sicher, dass dieses Projekt als Startprojekt festgelegt ist.
-
Fahren Sie fort, indem Sie die Projektmappe kompilieren, bereitstellen und debuggen.
-
Versuchen Sie, (F11) mit DllFunc zu verwenden. F11 wird für diese mithilfe vonGetProcAddress bezogene spezielle DllFunc() und nur auf der x86-Plattform zu F10.
So beheben Sie dieses Problem
Zeigen Sie DllFunc im Debuggerfenster an, um die Hex-Adresse zu erhalten und anschließend den Haltepunkt für die Disassembly festzulegen.
3.2 Beim verwalteten Anhängen an systemeigene Prozesse wird kein Fehler zurückgegeben
-
Erstellen Sie ein systemeigenes Console SmartDevice-Projekt.
-
Drücken Sie Strg + F5.
-
Wählen Sie Tool \ An den Prozess anhängen.
-
Wählen Sie den Transport für das intelligente Gerät & das Zielgerät.
-
Wählen Sie im Dialogfeld für die Auswahl des Debugmoduls den verwalteten Debugger.
-
Wählen Sie den systemeigenen Prozess & hängen Sie ihn an.
-
Es werden keine Meldungen angezeigt.
So beheben Sie dieses Problem
Es ist keine Lösung bekannt.
3.3 Beim Anwenden eines Filters auf einen bereits vorhandenen Haltepunkt im Unterbrechungsmodus wird dieser Haltepunkt ignoriert
-
Erstellen Sie mithilfe des folgenden Codes eine systemeigene Anwendung
void foo(void) { } int _tmain(int argc, _TCHAR* argv[]) { int i = 0; foo(); return 0; } -
Legen Sie einen Positionshaltepunkt für "return 0;" fest.
-
Legen Sie zur Entwurfszeit einen Funktionshaltepunkt für foo() fest.
-
Mit F10 wird der Unterbrechungsmodus für die Anwendung aufgerufen.
-
Öffnen Sie das Fenster für die Haltepunkte, und bearbeiten Sie die Filtereigenschaft des Funktionshaltepunkts (indem Sie die Filter ProcessName oder ThreadName einschließen).
-
Fortfahren (F5)
-
Der Funktionshaltepunkt wird nicht getroffen, stattdessen erfolgt eine Unterbrechung an der "return 0"-Anweisung.
Das obige Szenario veranschaulicht, dass durch das Ändern eines Haltepunkts zur Entwurfszeit durch Bearbeiten der Filtereigenschaften im Unterbrechungsmodus der Haltepunkt ignoriert wird. Dies gilt für alle Arten von Haltepunkten.
So beheben Sie dieses Problem
Legen Sie den Haltepunkt fest, und wenden Sie den Filter zur Entwurfszeit an. Dies gilt nur für ProcessName. ThreadName-Filter wie ThreadId und ProcessId sind zur Entwurfszeit unbekannt.
3.4 Beim systemeigenen Debuggen wird F10/F11 als Schritt über den Körper einer while-Schleife und zugehöriger Konstrukte übersetzt, wenn der Körper des Schleifenkonstrukts sich über eine einzelne Quellzeile erstreckt
F10/F11 funktioniert nicht fehlerfrei in den im nachfolgenden Beispiel beschriebenen Szenarios.
Beispielcodeausschnitt
1 int i = 0;
2 while (i < 1000) { i++; }
3 return 0;
Schritte:
-
Drücken Sie in Zeile 1 F9 und nach Erreichen des Haltepunkts in dieser Zeile F10
-
Jetzt befindet sich die Steuerung in Zeile 2
-
Drücken Sie erneut F10
Nach dem Ausführen der genannten Schritte ergibt sich das Problem, dass der Debugger nicht in Zeile 2 sondern in Zeile 3 anhält/unterbrochen wird. Das bedeutet, der Haltepunkt in Zeile 2 wird bei erneutem Drücken von F10 ignoriert.
Beachten Sie, dass dies für alle Schleifenkonstrukte gilt, die sich über eine einzelne Quellzeile erstrecken.
So beheben Sie dieses Problem
Fügen Sie mit F9 einen Haltepunkt in die Quellzeile mit der while-Schleife ein (Zeile 2). So wird der Debugger bei jedem Drücken von F10 in Zeile 2 unterbrochen, während er die while-Schleife durchläuft (bis der Inkrementwert für i auf 1000 steigt).
-oder-
Wenn der Code bearbeitet werden kann, reorganisieren Sie den obigen Code wie nachfolgend angegeben. Dies führt zum erwarteten Ergebnis.
1 int i = 0;
2 while (i < 1000)
3 { i++; }
4 return 0;
3.5 Die Schaltflächen systemeigener Dialogfelder für Anwendungen für intelligente Geräte werden möglicherweise nicht auf dem Bildschirm dargestellt
Wenn eine Visual Studio 2005 C++-Anwendung für intelligente Geräte ein Bestätigungsdialogfeld auf einem Pocket PC oder einem Smartphone aufruft, werden die Schaltflächen des Dialogfeldes möglicherweise nicht auf dem Bildschirm dargestellt.
So beheben Sie dieses Problem
Verwenden Sie die Schaltflächen/Tasten für den Bildlauf des Pocket PC oder des Smartphone, um einen manuellen Bildlauf zu den entsprechenden Schaltflächen durchzuführen.
3.6 Semantik der "Kopieren wenn neuer"-Eigenschaft für Projekte für intelligente Geräte
In Projekten für intelligente Geräte wird die Neuheit einer DLL- oder EXE-Datei durch einen Vergleich der Win32-Versionen ermittelt.
-
Wenn der Wert der Version auf Geräteseite geringer ist als der Wert der Version auf dem Desktop, wird die Datei kopiert.
-
Wenn der Wert der Version auf Geräteseite größer ist als der Wert der Version auf dem Desktop, wird die Datei nicht kopiert.
-
Wenn sich die Prüfsummen unterscheiden, wird die Datei kopiert.
Die Neuheit von Dateien, die keine DLL- oder EXE-Dateien sind, wird ausschließlich auf der Grundlage der Prüfsumme bestimmt.
Die Neuheit beruht nicht auf Timestamps oder der Größe.
So beheben Sie dieses Problem
Es ist keine Lösung bekannt.
3.7 Visual Studio 2005 stellt eine Verbindung mit einem ActiveSync-Gerät her, wenn bei der Verbindung mit einem TCP/IP-Gerät ein Fehler auftritt
Wenn ein Gerät (z. B. PPC) durch ActiveSync verbunden ist und Sie eine Verbindung mit einem WinCE-Gerät (z. B. CEPC) über TCP/IP herstellen möchten, stellt Visual Studio 2005 beim Fehlschlagen der TCP/IP-Verbindung mit WinCE eine Verbindung mit dem Gerät her, das über ActiveSync verbunden ist.
So beheben Sie dieses Problem
Trennen Sie die Verbindung des mit ActiveSync verbundenen Geräts, bevor Sie versuchen, eine TCP/IP-Verbindung mit einem anderen Gerät herzustellen.
3.8 Die Bereitstellung einer MFC-DLL mit Automatisierungsunterstützung und dynamischer Verknüpfung zur MFC-Bibliothek schlägt bei der Registrierung mit dem Fehler 0x8007007e fehl
Bei der Bereitstellung eines MFC-DLL-Projekts mit Automatisierungsunterstützung und dynamisch verknüpfter MFC-Bibliothek stellt Visual Studio 2005 die DLL zusammen mit allen erforderlichen abhängigen DLLs für das Gerät unterhalb des Projektordners bereit. LoadLibrary(), das für die Registrierung der DLL verwendet wird, sucht zunächst im Verzeichnis mit den Conman-Komponenten und anschließend im \Windows-Verzeichnis nach abhängigen Bibliotheken. Aus diesem Grund schlägt die DLL-Registrierung fehl.
So beheben Sie dieses Problem
Verschieben oder kopieren Sie die erforderlichen abhängigen DLLs vom Projektordner in das \Windows-Verzeichnis auf dem Gerät.
3.9 Bei der Verwendung von drahtlosen Netzwerken mit DHCP-Servern mit kurzer Leasedauer ist die Verbindung mit Device Emulator instabil
In drahtlosen Netzwerken können TCP/IP-Verbindungen mit Device Emulator über Virtual Switch-Treiber instabil sein. Dies wird durch die Interaktion zwischen DHCP-Serverimplementierung, dem Virtual Switch-Treiber und der 802.11-Spezifikation verursacht.
So beheben Sie dieses Problem
Für eine stabile Verbindung mit Device Emulator können Sie einen der folgenden Transporte verwenden.
-
DMA-Transport
-oder-
-
TCP/IP-Transport über Loopbackadapter.
3.10 MUI: Es kann keine Verbindung zwischen lokalisierten Remotetools und Device Emulator hergestellt werden, wenn die Ausführung nicht unter dem entsprechenden Systemgebietsschema erfolgt
Wenn auf einem englischsprachigen MUI-Betriebssystem eine lokalisierte Version von Visual Studio 2005 installiert ist (z. B. Japanisch), kann für Remotetools keine Verbindung mit Device Emulator hergestellt werden. Die Ursache hierfür ist, dass für die Remotetools immer das Systemgebietsschema verwendet wird. Aus diesem Grund stellen die Remotetools immer eine Verbindung mit dem englischen Device Emulator her, wenn zwei verschiedene Gebietsschemata für Visual Studio 2005 nebeneinander auf einem englischen MUI-Betriebssystem installiert sind (z.B. Japanisch und Englisch).
So beheben Sie dieses Problem
Ändern Sie das Systemgebietsschema so, dass es mit dem Gebietsschema für Visual Studio 2005 übereinstimmt.
3.11 Das Debuggen funktioniert mit den standardmäßigen Projekteinstellungen für SmartDevice VC++-Anwendungen manchmal schlecht, seit die OS-Compiler-Option festgelegt wurde
Für die standardmäßigen Projekteinstellungen von SmartDevice VC++-Projekten ist die Option für die Compileroptimierung /Os festgelegt. Durch /Os (Kompakten Code bevorzugen) wird die Größe von ausführbaren Dateien und DLLs verringert, indem dem Compiler mitgeteilt wird, dass die Größe der Geschwindigkeit gegenüber prioritär behandelt werden soll. Dies kann dazu führen, dass das Debuggen manchmal aufgrund des für diese Einstellungen generierten Codes schlechter funktioniert. Der Debugger könnte beispielsweise beim Durchlaufen sowohl die if- als auch die else-Anweisungen berücksichtigen.
So beheben Sie dieses Problem
Ändern Sie die Compileroptimierungseinstellung "Größe oder Geschwindigkeit bevorzugen" der /Os-Option auf Weder noch.
Schritte
-
Öffnen Sie das Dialogfeld Eigenschaftenseite des Projekts.
-
Klicken Sie auf den Ordner C/C++.
-
Klicken Sie auf die Eigenschaftenseite für die Optimierung.
-
Ändern Sie die Eigenschaft "Größe oder Geschwindigkeit bevorzugen" auf Weder noch.
Hierdurch wird die Funktion des Debuggers verbessert. Die Größe der ausführbaren Datei nimmt dadurch jedoch leicht zu.
3.12 Buildfehler beim Kompilieren einer Compact Framework 1.0-Anwendung mit zur Lokalisierung markiertem Formular
Wenn Sie eine zu lokalisierende Anwendung für Version 1.0 von Compact Framework entwickeln, wird ein Fehler wegen des fehlenden SDK ausgegeben.
Meldung:
"Für die Lokalisierung von Projekten für .NET Compact Framework 1.0 ist .NET Framework SDK, Version 1.1, erforderlich, die auf diesem Computer nicht gefunden wurde."
So beheben Sie dieses Problem
Version 1.1 des .NET Framework SDK ist im Lieferumfang des Visual Studio 2005-Produkts nicht enthalten. Sie müssen es downloaden und installieren.
Sie können das SDK auf der folgenden Seite herunterladen:
http://msdn.microsoft.com/netframework/downloads/updates/default.aspx
3.13 Bei Drag & Drop von SqlCEResultSet DataSource wird in der Designercodedatei kein Code für die Steuerelemente generiert
Bei einem Drag & Drop-Vorgang von SqlCEResultSet-DataSource aus dem DataSource-Fenster auf ein Gerät generiert der Windows-Forms-Designer keinen Code für die Steuerelemente in der Designercodedatei (z. B. Form1.designer.cs).
Dies geschieht folgendermaßen:
-
Die Option zum Erstellen von Steuerelementen ist auf DataGrid festgelegt: Der Code zum Erstellen und Initialisieren des DataGrid wird nicht in der Designercodedatei generiert.
-
Die Option zum Erstellen von Steuerelementen ist auf Details festgelegt: Der Code zum Erstellen und Initialisieren der Steuerelemente in der Detailansicht wird nicht in der Designercodedatei generiert.
So beheben Sie dieses Problem
Es genügt, einen der folgenden Schritte auszuführen:
-
Vor dem Drag & Drop-Vorgang: Bearbeiten Sie beliebige Eigenschaften des Formulars entweder im Eigenschaftenfenster oder im Kontextmenü der Entwurfsoberfläche.
Klicken Sie beispielsweise mit der rechten Maustaste auf die Entwurfsoberfläche, und deaktivieren Sie "Design anzeigen". Aktivieren Sie "Design anzeigen" anschließend erneut.-oder-
-
Vor dem Drag & Drop-Vorgang: Fügen Sie dem Formular ein beliebiges Steuerelement aus der Toolbox hinzu.
-oder-
-
Nach dem Drag & Drop-Vorgang: Bearbeiten Sie beliebige Eigenschaften des Formulars entweder im Eigenschaftenfenster oder im Kontextmenü der Entwurfsoberfläche.
-oder-
-
Nach dem Drag & Drop-Vorgang: Fügen Sie dem Formular ein beliebiges Steuerelement aus der Toolbox hinzu.
3.14 Die Bereitstellung eines MFC ActiveX-Steuerelements mit dynamischer Verknüpfung zur MFC-Bibliothek schlägt bei der Registrierung mit dem Fehler 0x8007007e fehl
Die LoadLibrary()-API, die für die Registrierung des ActiveX-Steuerelements verwendet wird, sucht zunächst im Verzeichnis mit den Conman-Komponenten und anschließend im \Windows-Verzeichnis nach abhängigen Bibliotheken. Aus diesem Grund schlägt die Registrierung des ActiveX-Steuerelements fehl.
So beheben Sie dieses Problem
Kopieren Sie die erforderlichen MFC-DLLs in das \Windows-Verzeichnis auf dem Gerät. Wenn Visual Studio 2005 beispielsweise auf dem Laufwerk C: installiert ist, können sich die MFC-DLLs für einen armv4-Prozessor unter folgendem Pfad befinden: C:\Programme\Microsoft Visual Studio 8\VC\ce\Dll\armv4.
3.15 Ein oder mehrere statische Textsteuerelemente in einem Geräteprojekt werden zur Laufzeit nicht angezeigt
Beim Ausführen von auf Dialogfeldern basierenden MFC-Anwendungen auf intelligenten Geräten wird eines der Textsteuerelemente zur Laufzeit nicht auf dem Gerät angezeigt. Nachstehend werden einige möglichen Ursachen aufgelistet.
-
Es wurde mithilfe eines Assistenten generierter Code zum Erstellen einer auf MFC basierenden Dialogfeldanwendung für intelligente Geräte verwendet, und der Entwickler hat dem Dialogfeld mehr als ein statisches Textsteuerelement hinzugefügt.
-oder-
-
Der spezifisch für die VC++-Anwendung für intelligente Geräte entwickelte Code unterstützt die automatische Auflösungsanpassung.
So beheben Sie dieses Problem
Beim Verwenden von mithilfe des Assistenten generiertem Code für eine dialogfeldbasierte MFC-Anwendung für intelligente Geräte generiert der Assistent automatisch Code für eine Anwendung mit automatischer Auflösungsanpassung (Resolution Aware). Die Anwendung mit automatischer Auflösungsanpassung verwendet DRA(Device Resolution Aware)-APIs. Der generierte Code ruft API DRA::RelayoutDialog() auf, um die Modi für Quer- und Hochformat zu unterstützen.
Für API DRA::RelayoutDialog() ist es erforderlich, dass jedes der statischen Textsteuerelemente eine eindeutige ID besitzt. Wenn der Entwickler dem Formular jedoch statische Textsteuerelemente durch Drag & Drop hinzufügt, werden alle IDs für statische Textsteuerelemente als IDC_STATIC generiert.
Damit alle Steuerelemente zur Laufzeit angezeigt werden, ändern Sie die IDs für diese statischen Textsteuerelemente in IDC_STATIC_1, IDC_STATIC_2, IDC_STATIC_3...usw., um diese zu eindeutigen IDs zu machen. Hierdurch wird sichergestellt, dass zur Laufzeit alle statischen Textsteuerelemente für Anwendungen mit automatischer Auflösungsanpassung angezeigt werden.
Wenn Sie die ID eines statischen Textsteuerelements ändern möchten:
-
Wählen Sie das Steuerelement im Formular aus.
-
Klicken Sie mit der rechten Maustaste, und wählen Sie Eigenschaften aus.
-
Wählen Sie die Eigenschaft "ID".
-
Ändern Sie IDC_STATIC für jedes statische Textsteuerelement in eine eindeutige ID, beispielsweise IDC_STATIC_2,IDC_STATIC_3 usw.
Eine vollständige Beschreibung von DRA::RelayoutDialog() finden Sie unter
3.16 Der auf einem Gerät ausgeführte Winsock-Server für intelligente Geräte empfängt eine OnConnect-Callbackbenachrichtigung
Bei der Implementierung des Socket-Servers für intelligente Geräte werden die Methoden OnConnect() und OnAccept() implementiert, wobei CSocket oder CAsyncSocket für WinCE verwendet wird. Wenn ein Client eine Verbindung mit dem auf dem Gerät gehosteten Server herstellt, empfängt der Server sowohl OnAccept()- als auch OnConnect()-Benachrichtigungen.
So beheben Sie dieses Problem
Um OnConnect()-Benachrichtigungen an den Server zu verhindern, führen Sie einen der folgenden Schritte aus:
Vor dem Aufruf von Accept() auf dem Serversocket
-
Rufen Sie die AsyncSelect-Methode mithilfe der Ereignisse auf, die der Serversocket abonniert hat. Wenn "socket" das Objekt für den Serversocket ist, dann
socket.AsyncSelect(FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CLOSE);Beachten Sie, dass alle Ereignisse außer FD_CONNECT verwendet werden, um das Connect-Ereignis im Server explizit zu maskieren.
-
Wenn es erforderlich ist, dass der Serversocket andere Ereignisse maskiert, verwenden Sie die Liste spezifischer Ereignisse, die für den Serversocket von Interesse sind. Wenn der Serversocket beispielsweise keine Ereignisse für Lesevorgänge empfangen soll, entfernen Sie auch FD_READ aus der Liste der Ereignisse für den Aufruf der AsynchSelect-Methode als
socket.AsyncSelect(FD_WRITE | FD_OOB | FD_ACCEPT | FD_CLOSE);
Dadurch werden die Ereignisse FD_CONNECT und FD_READ maskiert.
Eine vollständige Beschreibung des Verhaltens der Methode ASyncSelect finden Sie unter:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_casyncsocket.3a3a.asyncselect.asp
3.17 eVC4Project kann in Visual Studio 2005 nicht durch Doppelklicken auf die VCW-Datei geöffnet werden
Der Entwickler hat ein Geräteprojekt mithilfe von eVC4 erstellt. Nach der Installation von Visual Studio 2005 versucht er, das eVC4-Projekt in Visual Studio 2005 durch Doppelklicken auf die eVC4-Arbeitsbereichsdatei "project.vcw" zu öffnen.
So beheben Sie dieses Problem
Die standardmäßigen eVC4-Projekte sind nicht als Visual Studio 2005-Projekte registriert. Um diese eVC4-Projekte in mit Visual Studio 2005 kompatible Projektmappendateien zu konvertieren, führen Sie folgende Schritte aus:
-
Öffnen Sie Visual Studio 2005.
-
Klicken Sie unter Datei | Öffnen auf Projekt/Projektmappe.
-
Navigieren Sie im Dialogfeld Projekt öffnen zur VCW-Datei, wählen Sie die Datei aus, und klicken Sie auf Öffnen.
-
Wählen Sie "Ja", um dieses Projekt zu öffnen.
3.18 Beim Marshalling von Strukturen auf Geräten wird "NotSupportedException" zurückgegeben, wenn die Struktur Referenztypen enthält
In einem Geräteprojekt wird durch die im nachfolgenden Code enthaltene SizeOf-Anweisung die Ausnahme NotSupportedException ausgelöst:
Imports System.Runtime.InteropServices.MarShal
Module Module1
Structure S1
Public RefType As String
End Structure
Sub Main()
Dim sz As Integer
Dim struct As New S1
struct.RefType = "strings are reference types"
sz = SizeOf(struct)
End Sub
End Module
So beheben Sie dieses Problem
Wenden Sie ein Attribut auf den Referenztyp an, sodass das Marshalling korrekt ausgeführt wird. Hier ein Beispiel:
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=3)> Public x As String
Weitere Informationen finden Sie in der Dokumentation über 'MarshalAsAttribute'.
3.19 Bei Auswahl von 'Speichern unter' wird auf x86- oder SH4-Plattformen das Dialogfeld für die Pfadauswahl nicht angezeigt
Wenn Sie in einem systemeigenen MFC-Projekt im Anwendungsmenü auf die mithilfe des Assistenten generierte Option 'Speichern unter' klicken (Datei > Speichern unter), wird das Dialogfeld 'Speichern unter' nicht angezeigt.
So beheben Sie dieses Problem
Verwenden Sie die Funktion 'GetSaveFileName' in der Standarddialogfeld-Bibliothek.
Um beispielsweise einen Dateinamen für eine von CWinApp abgeleitete Klasse zu erstellen, führen Sie folgende Schritte aus:
Erstellen Sie einen Zuordnungseintrag für die Meldung, und registrieren Sie den Handler für den Befehl ID_FILE_SAVE_AS.
Dies kann auf folgende Weise erfolgen
-
Unter Verwendung von IDE:
-
Klicken Sie mit der rechten Maustaste auf das Menüelement 'Speichern unter'. Wählen Sie die Option 'Ereignishandler hinzufügen'.
-
Geben Sie den Namen und die Beschreibung des Handlers ein. Wählen Sie die Klasse aus, der der Handler zugeordnet werden soll.
-
Wählen Sie jetzt die Option 'Hinzufügen und Bearbeiten', um die entsprechenden Einträge zu erstellen. Der Code, der in den Handler
geschrieben werden muss, wird nachfolgend veranschaulicht.
-
-
Bearbeiten der Quelldateien.
-
Fügen Sie einen Eintrag des Typs ON_COMMAND(ID_FILE_SAVE_AS, your_handler) zwischen den Makros BEGIN_MESSAGE_MAP und END_MESSAGE_MAP ein.
-
Fügen Sie 'afx_msg void your_handler();' des Handlers in die Headerdatei für die entsprechende Klasse ein.
-
Implementieren Sie diese Funktion als Memberfunktion für diese Klasse in der Quelle, und verwenden Sie dabei die folgenden Vorschläge.
-
-
Der Code für den Handler sollte der Reihenfolge nach folgende Schritte ausführen:
-
Eine OPENFILENAME-Struktur deklarieren und die entsprechenden Felder initialisieren (siehe die Dokumentation zu OPENFILENAME.)
-
Die GetSaveFileName-Funktion mit diesem Verweis auf die entsprechende Struktur aufrufen.
Dadurch wird das Dialogfeld für die Auswahl des Dateinamens angezeigt. -
Das Feld 'lpstrFile' der Struktur enthält den Dateinamen, der im Dialogfeld für die Pfadauswahl ausgewählt wurde.
-
-
Der Handler kann diesen ausgewählten Namen zu einem späteren Zeitpunkt erneut verwenden.
3.20 Beim systemeigenen Debuggen funktioniert F11 nicht für Klassenkonstruktoren auf x86
Verwenden eines Konstruktoraufrufs funktioniert beim systemeigenen Debuggen für ein CEPC x86-Gerät nicht
Beispiel:
class Foo
{
private:
int i;
public:
Foo()
{
i = 0;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
Foo *f = new Foo(); /* F11 sollte in dieser Anweisung den Eintritt in den Konstruktor ermöglichen,
doch stattdessen wird ein Fenster mit der Meldung angezeigt, dass keine Quelle
verfügbar ist, und der Benutzer wird gefragt, ob die Disassembly angezeigt
werden soll.*/
return 0;
}
Beachten Sie, dass dieses Problem nur auf x86-Architekturen zutrifft.
So beheben Sie dieses Problem
Legen Sie einen Haltepunkt direkt im Konstruktor fest, und drücken Sie anschließend F5. Der Code im Konstruktur muss auf einem x86-Gerät debuggt werden.
3.21 Fehlerhafte Meldung beim Bereitstellen einer CAB-Datei für ein Gerät oder einen Emultor mit fehlender wceload.exe
Durch Wceload.exe werden Installationsaufgaben für CAB-Dateien auf Pocket PC und Smartphone ausgeführt.
Die Bereitstellung einer CAB-Datei für ein Gerät oder einen Emulator mit fehlender wceload.exe führt zu einem Fehlschlag, und folgende Meldung wird angezeigt: "Das System kann die angegebene Datei nicht finden".
So beheben Sie dieses Problem
Kopieren Sie die entsprechende wceload.exe in das \Windows-Verzeichnis des Geräts.
3.22 Beim Bereitstellen oder Debuggen einer Anwendung auf Device Emulator mithilfe von TCP-Transport über den Virtual Switch-Treiber treten Verbindungsunterbrechungen auf
Die Ursache hierfür liegt in einem Problem des Virtual Switch-Treibers.
So beheben Sie dieses Problem
Verwenden Sie DMA-Transport, um eine stabile Verbindung mit Device Emulator herzustellen.
3.23 Prozessgrenzen können nicht übersprungen werden
Schritte zur Reproduktion:
-
Erstellen Sie ein VC++ -> Smart Device -> Win32 SmartDevice-Projekt.
-
Wählen Sie im Assistenten zum Erstellen von Projekten PPC 2003 SDK und den Windows-Anwendungstyp.
-
Erstellen Sie ein Projekt,
-
Legen Sie den Haltepunkt auf die letzte Anweisung in WndProc fest (Rückgabe: 0;).
-
Drücken Sie F5.
-
Sehen Sie sich bei Erreichen des Haltepunkts die Aufrufliste an.
-
Drücken Sie zwei Mal F10, um die Funktion zu verlassen.
-
Bei Verlassen von WndProc wird der Fehler "Springen nicht möglich" ausgegeben, da sich der Aufrufer in einem anderen Prozess befindet.
So beheben Sie dieses Problem
Das Springen zwischen Prozessen wird nicht unterstützt. Der Benutzer kann F5 statt F10 drücken, um den Debugger auszuführen, und so die Fehlermeldung umgehen.
3.24 Falsches LookUpBinding-Verhalten des ComboBox-Steuerelements in EditViewDialog der generierten Datenformulare
Das ComboBox-Steuerelement zeigt in EditViewDialog der generierten Datenformulare falsches LookUpBinding-Verhalten.
Dieses Verhalten tritt beispielsweise nach dem Ausführen der folgenden Schritte ein:
-
Erstellen Sie ein PPC Magneto Device VB-Projekt.
-
Stellen Sie in Server-Explorer eine Verbindung zur Northwind SDF-Datenbank her.
-
Erstellen Sie im Datenquellenfenster eine Datenquelle mit allen Tabellen der Northwind SDF-Datenbank.
-
Erstellen Sie per Drag & Drop die Orders-Tabelle als Datenblatt.
-
Ändern Sie im Datenquellenfenster den Steuerelementtyp von Orders.[Customer ID] in comboBox.
-
Erstellen Sie mithilfe der DataGrid-Smarttask Datenformulare für Bestellungen.
-
Fügen Sie in der Form1.vb-Codedatei die Zeile
"OrdersTableAdapter.Update(Me.NorthwindDataSet.Orders)"
als letzte Anweisung in den folgenden Funktionen hinzu:
-
NewMenuItemMenuItem_Click
-
OrdersDataGrid_Click
-
-
Öffnen Sie das EditViewDialog-Formular.
-
Legen Sie für die Customer_IDComboBox-Eigenschaften Folgendes fest:
Wert von DataSource: CustomersBindingSource
Wert von ValueMember - Kundenkennung
Wert von DisplayMember - Firmenname
Wert von Data Bindings::Selected Value: OrdersBindingSource - Kundenkennung -
Erstellen Sie das Steuerelement, und stellen Sie es dem Emulator bereit.
-
Klicken Sie im Emulator auf einen Datensatz, um SummaryView für die Bestellung anzuzeigen.
-
Klicken Sie auf Bearbeiten, um EditView für die Bestellung anzuzeigen.
Erwartetes Ergebnis:
-
Die comboBox sollte für die ausgewählte Bestellung den der Kundenkennung entsprechenden Firmennamen anzeigen
Tatsächliches Ergebnis:
-
Die comboBox zeigt den ersten Firmennamen in der Firmennamenliste an.
-
Nach dem Klicken auf OK wird in der Bestellung die Kundenkennung in die Kennung der ersten Firma in der Liste geändert.
So beheben Sie dieses Problem
Schneiden Sie den Inhalt der OrdersEditViewDialog_Load-Funktion aus, und fügen Sie diesen im OrdersEditViewDialog-Konstruktor gleich nach dem InitializeComponent-Funktionsaufruf ein.
4. Integration der Quellcodeverwaltung
4.1 Beim Umbenennen eines Ordners unter der FrontPage-Quellcodeverwaltung stehen die darunter liegenden Dateien nicht unter Quellcodeverwaltung
Wenn Sie an einer Remotewebsite arbeiten, für die die Versionskontrolle von FrontPage verwendet wird, und Sie einen Ordner umbenennen, der quellcodeverwaltete Elemente enthält, werden alle im Ordner enthaltenen Elemente als nicht unter der Quellcodeverwaltung stehend angezeigt, bis Sie die Website schließen und erneut öffnen.
So beheben Sie dieses Problem
Schließen Sie die Website nach dem Umbenennen des Ordners, und öffnen Sie sie erneut.
4.2 Wenn Sie eine Projektmappe aus einer Quellcodeverwaltung heraus öffnen, die ein IIS-Web mit mehreren Ebenen enthält, müssen Sie möglicherweise dem übergeordneten Ordner im Web Leseberechtigungen für IIS hinzufügen, um debuggen zu können
Wenn Sie eine Projektmappe aus einer Quellcodeverwaltung öffnen, die IIS-Websites enthält, erteilt VS nur dem Zielpfad des URL eine IIS-Leseberechtigung. Um IIS-Websites jedoch debuggen zu können, ist für IIS ein Lesezugriff auf alle Ordner im virtuellen Pfad des URL erforderlich. Wenn Sie also eine Projektmappe öffnen, die eine Website mit mehr als einer Ebene enthält (z. B. http://localhost/MyWebs/Web1), müssen Sie IIS möglicherweise einen Lesezugriff auf alle Ordner gewähren, auf die das übergeordnete Web (z. B. http://localhost/MyWebs/Webs) zeigt, damit Sie die Website debuggen können.
So beheben Sie dieses Problem
Fügen Sie dem übergeordneten Ordner im URL in Windows Explorer die Berechtigung "Lesen" für das ASP.NET-Benutzerkonto hinzu. Wenn Sie Windows Server 2003 verwenden, benötigt das Konto NETZWERKDIENST ebenfalls eine Leseberechtigung für den Ordner. Wenn Sie beispielsweise eine Projektmappe aus der Quellcodeverwaltung öffnen, die http://localhost/MyWebs/Web1 enthält, navigieren Sie im Windows Explorer zum Verzeichnis, auf das "http://localhost/MyWebs" zeigt, und fügen Sie diesem Ordner die Berechtigung hinzu. Sie können die Projektmappe jedoch auf dem Computer auch an einem anderen Speicherort öffnen, für den die Benutzergruppe eine Leseberechtigung besitzt (standardmäßig wird der Benutzergruppe im Verzeichnis Eigene Dokumente und den entsprechenden Unterordnern kein Lesezugriff gewährt).
5. Crystal Reports
Weitere Informationen über Crystal Reports für Visual Studio 2005 finden Sie unter: http://www.businessobjects.com/products/reporting/crystalreports/net/vsnet.asp
6. Tools für das Microsoft Office-System
6.1 Visual Studio Tools for Office unterstützt keine aus mehreren Teilen bestehenden XML-Schemas
Visual Studio Tools for Office unterstützt nur XmlMaps, die auf einem einzelnen primären Schema basieren, obwohl Microsoft Office Excel XmlMaps unterstützt, die aus einem primären Schema und einem optionalen unterstützenden Schema zusammengesetzt sein können.
So beheben Sie dieses Problem
Es ist keine Lösung bekannt.
6.2 Steuerelemente werden nicht geladen, wenn ein WordDynamicControls-Beispiel erneut geöffnet wird
Wenn das WordDynamicControls-Beispiel verwendet wird, kann es vorkommen, dass hinzugefügte Steuerelemente nicht gespeichert werden, wenn das Dokument geschlossen und erneut geöffnet wird.
So beheben Sie dieses Problem
Es ist keine Lösung bekannt.
6.3 Sowohl VBA- als auch XLM (Excel 4.0-Makro)-Code wird ausgeführt, wenn eine Arbeitsmappe im Designer geöffnet wird
Wenn in den Ereignishandlern einer Arbeitsmappe VBA (Visual Basic for Applications)- oder XLM (Excel 4.0-Makro)-Code vorhanden ist, wird der Code ausgeführt, wenn die Arbeitsmappe im Designer geöffnet ist.
So beheben Sie dieses Problem
Um sicherzustellen, dass kein VBA- oder XLM-Code ausgeführt wird, während Sie die Arbeitsmappe mithilfe von Visual Studio Tools for Office anpassen, müssen Sie den gesamten der Arbeitsmappe zugeordneten VBA- oder XLM-Code entfernen, bevor Sie ein auf der Arbeitsmappe basierendes Projekt erstellen.
6.4 Wenn Visual Studio Team System auf einem Computer installiert wird, auf dem nur Microsoft Office XP installiert ist, werden Sicherheitsdialogfelder angezeigt, wenn Word oder Excel gestartet wird
Wenn Sie Word oder Excel nach der Installation von Visual Studio Team System auf einem Computer starten, auf dem nur Office XP installiert ist, wird das folgende Office-Sicherheitsdialogfeld angezeigt:
VSTOWordAdaptor.dll [oder VSTOExcelAdaptor.dll]
enthält Makros von
Microsoft Corporation
Makros können Viren enthalten. Es ist immer sicherer, Makros zu deaktivieren. Falls die Makros jedoch legitim sind, verlieren Sie möglicherweise Funktionalität.
Die Sicherheitsstufe ist auf Hoch eingestellt. Sie können Makros von nicht vertrauenswürdigen Quellen nicht aktivieren.
[] Makros aus dieser Quelle immer vertrauen.
[Makros deaktivieren] [Makros aktivieren] [Weitere Informationen]
Diese Warnung wird angezeigt, weil die für das Signieren von VSTOWordAdaptor.dll und VSTOExcelAdaptor.dll verwendete Microsoft-Signatur nicht in der Liste der vertrauenswürdigen Signaturen von Office XP enthalten ist. Die Microsoft-Signatur ist in der Liste der vertrauenswürdigen Signaturen in Office 2003 enthalten.
So beheben Sie dieses Problem
Vertrauen Sie Makros von Microsoft Corporation. Wenn Sie Visual Studio 2005 Tools for Office verwenden möchten, müssen Sie eine unterstützte Office 2003-Version installieren. Beim Installieren von Office 2003 wird diese Microsoft-Signatur der Liste vertrauenswürdiger Signaturen hinzugefügt.
6.5 Durch Entfernen einer Tabelle, zu der Bindungen bestehen, aus einem Dataset werden beim Debuggen der Anwendung möglicherweise Komponenten aus dem Komponentenfach entfernt
Dieses Problem tritt auf, wenn Sie mit der Bearbeitungsfunktion oder dem Assistenten zum Konfigurieren von Datenquellen ein datengebundenes Hoststeuerelement, zum Beispiel ein Listenobjekt, aus der Entwurfsoberfläche entfernen und anschließend die Tabelle, an die es gebunden war, aus der Datenquelle entfernen. Wenn Sie dann ein neues Hoststeuerelement hinzufügen und die Anwendung debuggen, wird möglicherweise eine Ausnahme generiert. Wenn Sie das Debuggen anhalten, wird die Entwurfsoberfläche entladen, und Datenkomponenten werden aus dem Komponentenfach entfernt.
So beheben Sie dieses Problem
Wenn Sie ein Hoststeuerelement aus der Entwurfsoberfläche und dann die Tabelle, an die es gebunden ist, aus der Datenquelle entfernen, müssen Sie die Bindungsquelle der Tabelle manuell entfernen, bevor Sie die Anwendung erstellen.
6.6 Extendereigenschaften für Windows Forms-Steuerelemente werden nicht für die englische Excel-Version angezeigt, wenn als Windows-Benutzergebietsschema eine andere Sprache als Englisch eingestellt ist
Das Problem betrifft die englische Excel-Version, wenn das Windows-Benutzergebietsschema in eine andere Sprache als Englisch geändert wird. Bestimmte Eigenschaften, zum Beispiel Höhe und Breite, sind nicht für Windows Forms-Steuerelemente verfügbar, die auf der Excel-Entwurfsoberfläche gehostet werden.
So beheben Sie dieses Problem
Installieren Sie ein MUI Pack (Office Multilingual User Interface) im System.fwie d Es ist nicht erforderlich, die Sprache der Excel-Benutzeroberfläche zu ändern.
6.7 Visual Studio Tools for Office-Anpassungen werden nicht in Word geladen, wenn das Dokument über HTTP geöffnet und die Option "Im selben Fenster durchsuchen" in Windows Explorer nicht ausgewählt ist
Internet Explorer verwendet die Eigenschaft "Im selben Fenster durchsuchen", um zu bestimmen, ob das Dokument im Browser oder in einem separaten Fenster gehostet wird. Wenn das Dokument in einem separaten Fenster gehostet wird, werden die Anpassungen nicht geladen und ausgeführt.
So beheben Sie dieses Problem
Wählen Sie in Windows Explorer "Im selben Fenster durchsuchen".
So rufen Sie die Eigenschaft "Im selben Fenster durchsuchen" auf:
-
Öffnen Sie Windows Explorer.
-
Klicken Sie auf das Menü Extras.
-
Klicken Sie auf Ordneroptionen.
-
Klicken Sie auf die Registerkarte Dateitypen.
-
Wählen Sie in der Liste der registrierten Dateitypen den Eintrag DOC aus.
-
Klicken Sie auf Erweitert.
6.8 Beim Auschecken eines Visual Studio Tools for Office-Dokuments werden die erforderlichen zugehörigen Dateien von der Quellcodeverwaltung nicht ausgecheckt
Wenn Sie ein Visual Studio Tools for Office-Dokument aus der Quellcodeverwaltung auschecken, werden nicht alle erforderlichen Dateien automatisch ausgecheckt. Das liegt daran, dass der generierte Code in Dateien separat vom Benutzeroberflächensteuerelement und den Datenkomponenteneigenschaften des Dokuments gespeichert wird.
Indirekt an den abhängigen Dateien vorgenommene Änderungen gehen beim Einchecken des Dokuments verloren, weil die abhängigen Dateien niemals ausgecheckt wurden und daher nicht aktualisiert werden konnten.
Wenn nur das Dokument ausgecheckt wird und auf dem Server eine neuere Version der zugehörigen Dateien vorhanden ist, werden die neuesten Eigenschaften nicht angezeigt. Die Eigenschaften in den zugehörigen Dateien auf dem Server werden überschrieben, wenn die zugehörigen Dateien mit dem Dokument eingecheckt werden.
So beheben Sie dieses Problem
Sie müssen alle zugehörigen Dateien auschecken, bevor Sie ein eingechecktes Dokument ändern. Denken Sie beim Einchecken des Dokuments daran, alle zugehörigen Dateien einzuchecken. Wenn "Alle Dateien anzeigen" ausgewählt ist, werden diese Dateien im Projektmappen-Explorer eingerückt unter dem Dokument angezeigt.
6.9 Word-Vorlagen werden nicht in der Seitenlayoutansicht, sondern in der Normalansicht geöffnet, sodass Steuerelemente, die nicht im Textfluss sind, nicht angezeigt werden
Objekte in Word, die nicht im Textfluss sind (Text in Zeile), werden nur in der Seitenlayoutansicht angezeigt. Standardmäßig werden Steuerelemente der Benutzeroberfläche in Visual Studio Tools for Office-Dokumenten im Textfluss hinzugefügt. Um den Layouttyp zu ändern, klicken Sie mit der rechten Maustaste auf das Steuerelement, und klicken Sie dann nacheinander auf "Steuerelement formatieren…" und "Layout".
Word-Vorlagen werden in Visual Studio Tools for Office standardmäßig in der Normalansicht geöffnet, daher werden Steuerelemente, die nicht im Textfluss sind, nicht angezeigt.
So beheben Sie dieses Problem
Wechseln Sie von der Normalansicht in die Seitenlayoutansicht, um die Steuerelemente anzuzeigen.
6.10 Wenn ein Steuerelement zur Entwurfszeit aus einem inaktiven Excel-Tabellenblatt gelöscht wird, bleibt möglicherweise automatisch generierter Code zurück
Jedes Arbeitsblatt verfügt über eine eigene Entwurfsoberfläche, die auf Anforderung geladen wird. Wenn Änderungen am Arbeitsblatt vorgenommen werden, indem zum Beispiel Steuerelemente hinzugefügt, gelöscht oder geändert werden, werden diese Änderungen von der Entwurfsoberfläche erkannt, und der generierte Code wird aktualisiert.
Wenn zur Entwurfszeit Steuerelemente aus einem inaktiven Tabellenblatt gelöscht werden, kann der generierte Code nur partiell aktualisiert werden, weil die Entwurfsoberfläche nicht instanziiert wurde. Es gibt mindestens zwei Möglichkeiten, wie dieser Fall eintreten kann. Erste Möglichkeit: Das Dialogfeld "Benannte Bereiche verwalten" wird verwendet, um ein NamedRange-Steuerelement aus einem inaktiven Tabellenblatt zu löschen. Zweite Möglichkeit: Das Excel-Dokument wird außerhalb von Visual Studio geöffnet, dann werden Steuerelemente entfernt, und anschließend wird das Dokument erneut in Visual Studio geöffnet.
So beheben Sie dieses Problem
Aktivieren Sie das Arbeitsblatt, bevor Sie das Dialogfeld "Benannte Bereiche verwalten" verwenden, um ein NamedRange-Steuerelement zu löschen.
Zum Reparieren von Buildfehlern nehmen Sie eine beliebige Änderung an allen betroffenen Tabellenblättern vor, indem Sie eine Eigenschaft bearbeiten, ein Steuerelement in der Oberfläche hinzufügen oder ein Steuerelement aus der Oberfläche löschen. Anschließend erstellen Sie das Projekt erneut.
6.11 Visual Studio Tools for Office unterstützt keine 64-Bit-Anwendungen
Standardmäßig generieren Visual Studio Tools for Office und andere Projekttypen zum Typ "Any CPU". Allerdings funktionieren Visual Studio Tools for Office-Projektmappen nur in einer 32-Bit-Umgebung.
So beheben Sie dieses Problem
Um Visual Studio Tools for Office-Lösungen auf einem 64-Bit-Computer auszuführen, müssen Sie die Zielplattform in den Projekteigenschaften von "Any CPU" in x86 ändern, selbst wenn Sie die Anwendung auf einem Windows-Betriebssystem mit 64 Bit bereitstellen. Sie müssen diese Änderung auch für andere Arten von Anwendungen vornehmen, zum Beispiel für Konsolenanwendungen oder Windows Forms-Anwendungen, die die ServerDocument-Klasse verwenden.
6.12 Visual Studio Team System-Komponententests werden in Visual Studio Tools for Office-Projekten nicht unterstützt
Die Komponententestfunktion der Visual Studio Team System-Produkte wird in Visual Studio Tools for Office nicht unterstützt.
So beheben Sie dieses Problem
Es ist keine Lösung bekannt.
