Frage

Ich bin mit dem Microsoft.Build.BuildEngine eine Reihe von Projekten zu bauen. Projekte, die nicht Silverlight verwenden bauen korrekt, während Projekte, die Silverlight verwenden Sie keine Gebäude sind. All diese Projekte (Silverlight und nicht-Silverlight) alles in Ordnung durch Visual Studio bauen 2008. Ich erhalte die Fehlermeldung:

  

Fehler CS0234: Der Typ oder Namespace Name ‚SilverlightControls‘ existiert nicht in der   Namespace 'System.Web.UI' (werden Sie eine Assembly Referenz fehlt?)

Ich habe System.Web.Silverlight das Projekt hinzugefügt, die die Build mit Microsoft.Build.BuildEngine tun. Ich bin in der Lage, dass Namespace in dem Projekt auch den Build tun (so scheint es, dass das Projekt das Build zu tun hat Zugriff auf System.Web.UI).

Alle Ideen, wie ich diesen Fehler vermeiden kann?


die Ausführlichkeit auf dem Build durch VS2008 und im Vergleich zu dem Protokoll vom Microsoft.Build.BuildEngine erstellt auftaucht. Es sieht aus wie die Microsoft.Build.BuildEngine ist produzierende Linien mögen:

  

Considered „c: \ Programme \ Reference Assemblies \ Microsoft \ Framework   \ V3.5 \ System.Web.Silverlight.dll“, aber es gibt es nicht.

Es existiert nicht an dieser Stelle, sollte es? Es gibt tatsächlich eine Reihe von Orten, die es für diese DLL sieht und findet es nicht. Ich habe den Verweis durch einen Rechtsklick, fügen Sie Referenz, .Net, hinzuzufügen. Es scheint keine System.Web.Silverlight.dll auf meiner Maschine zu sein (was merkwürdig ist, weil das Projekt VS2008 nicht kompiliert verwenden).

Beim Vergleich der möglicherweise relevanten Abschnitte der beiden Protokolle: Microsoft.Build.BuildEngine

  

Für SearchPath "{GAC}".   Als „System.Web.Silverlight, Version = 2.0.5.0, Culture = neutral,   PublicKeyToken = 31bf3856ad364e35, processor = MSIL“, die nicht gefunden wurde   der GAC.

Visual Studio 2008

  

System.Web.Silverlight, Version = 2.0.5.0, Culture = neutral,   PublicKeyToken = 31bf3856ad364e35, processor = MSIL


manuell hinzugefügt System.Web.Silverlight auf den Pfad, die Microsoft.Build.BuildEngine wurde es zu suchen (es aus dem Ausgabeverzeichnis coppied wenn ich das Projekt über VS2008 bauen). Dies löste dieses Problem, aber ich nun folgende Fehler auf den Silverlight-Komponenten der Lösung erhalten:

  

C: \ Programme \ MSBuild \ Microsoft \ Silverlight   \ V2.0 \ Microsoft.Silverlight.Common.targets (95,9): Fehler: Das SDK Silver 2 nicht   installiert ist.

Irgendwelche Ideen?

War es hilfreich?

Lösung

In der Anwendung, die die Microsoft.Build.BuildEngine läuft ich die Art von Build von Any CPU auf x86 geändert. Dies hat sich nun machte die Anwendung in der Lage sein, das Ziel zu bauen, wie erwartet.

Andere Tipps

So Sie programmatisch Gebäude sind die MSBuild-APIs?

Es kann sinnvoll sein, eine ILogger (zB, die auf die Konsole druckt nur) hinzufügen, um engine.Loggers, und die Ausgabe mit dem Ausgabefenster in VS vergleichen (zB nach ‚Tool \ Optionen \ project & Lösungen Einstellung \ bauen & run \ msbuild Ausgabe Ausführlichkeit‘zu ausführlich) ... scheint irgendwie die Umwelt Baugruppen verursacht anders zu lösen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top