Ich verwende die Microsoft.Build.BuildEngine, um eine Reihe von Projekten zu erstellen. Projekte, die Silverlight nicht verwenden, werden korrekt erstellt, während Projekte, die Silverlight verwenden, nicht erstellt werden. Alle diese Projekte (Silverlight und Nicht-Silverlight) lassen sich problemlos über Visual Studio 2008 erstellen. Ich erhalte die Fehlermeldung:
Fehler CS0234: Der Typ oder Namespace-Name 'SilverlightControls' existiert nicht im Namespace 'System.Web.UI' (fehlt eine Assembly-Referenz?)
Ich habe System.Web.Silverlight zu dem Projekt hinzugefügt, das den Build mit Microsoft.Build.BuildEngine durchführt. Ich bin in der Lage, diesen Namespace in dem Projekt zu sehen, das den Build ebenfalls durchführt (es scheint also, dass das Projekt, das den Build durchführt, Zugriff auf System.Web.UI hat).
Haben Sie eine Idee, wie ich diesen Fehler vermeiden kann?
Ich habe die Ausführlichkeit des Builds durch VS2008 erhöht und mit dem von der Microsoft.Build.BuildEngine erstellten Protokoll verglichen. Es sieht aus wie die Microsoft.Build.BuildEngine ist Zeilen wie produzieren:
Gilt als "c: \Program Dateien \Reference Baugruppen \Microsoft\Framework \v3.5\System.Web.Silverlight.dll ", aber das gab es nicht.
Das gibt es an dieser Stelle nicht, oder doch? Es gibt tatsächlich eine Reihe von Orten, an denen nach dieser DLL gesucht wird und sie nicht gefunden wird. Ich habe den Verweis mit Rechtsklick, Verweis hinzufügen, .Net, hinzufügen hinzugefügt. Es scheint keine System.Web.Silverlight.dll auf meinem Rechner zu geben (was seltsam ist, da das Projekt mit VS2008 kompiliert wird).
Vergleich der möglicherweise relevanten Abschnitte der beiden Protokolle: Microsoft.Build.BuildEngine
Für SearchPath "{GAC}". Berücksichtigt "System.Web.Silverlight, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL", das nicht im GAC gefunden wurde. der GAC gefunden wurde.
Visual Studio 2008
System.Web.Silverlight, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL
Ich habe System.Web.Silverlight manuell zu dem Pfad hinzugefügt, in dem die Microsoft.Build.BuildEngine danach gesucht hat (ich habe es aus dem Ausgabeverzeichnis kopiert, als ich das Projekt über VS2008 erstellt habe). Dies löste das Problem, aber ich erhalte jetzt die folgenden Fehler auf die Silverlight-Komponenten der Lösung:
C:\Program Dateien \MSBuild\Microsoft\Silverlight \v2.0\Microsoft.Silverlight.Common.targets (95,9): Fehler : Das Silverlight 2 SDK ist nicht installiert.
Irgendwelche Ideen?