2009-06-11 5 views
9

Wir entwickeln ein ASP.Net-Webanwendungsprojekt, das über eine Silverlight 2.0-Komponente verfügt. Wir haben das silverlight-Projekt in den Eigenschaften der Webanwendung referenziert, und die xap-Datei wird in den Ordner ClientBin der Webanwendung kopiert, wenn wir lokal erstellen.Silverlight XAP-Datei, die nicht auf ClientBin Build Server kopiert wird

Das Problem ist, dass, wenn wir dies auf unserem Build-Server bauen (die CruiseControl.Net verwendet, obwohl ich glaube nicht, dass das relevant ist) die XAP-Datei nicht kopiert wird. Das Seltsame ist, dass das funktionierte, aber etwas hat es kaputt gemacht und wir können nicht herausfinden was.

Hat jemand das schon mal gesehen?

Antwort

13

Sortiert!

Nicht ganz sicher, warum, aber es stellt sich heraus, dass wir eine out-of-date-Version von Microsoft.WebApplications.targets auf dem Build-Server hatte - die Version, die wir nicht die CopySilverlightApplications Aufgabe darin gehabt haben haben. Um das Problem zu beheben, kopierte ich die zwei Dateien aus dem Ordner C:\Program Files\MSBuild\Microsoft\VisualStudio\v9.0\WebApplications an den gleichen Speicherort auf dem Buildserver. Jetzt funktioniert alles wie es soll.

Nun, wenn ich nur könnte herausfinden, welche Installer diese Dateien aktualisiert haben, sollen ...

+0

Das Gleiche ist für mich passiert. Dies ist mit VS2008SP1 und ich habe das Web Platform-Installationsprogramm verwendet, um "Silverlight 3 Tools für Visual Studio", "Silverlight Toolkit (Oktober)" und "WCF Ria Services" herunterzuladen und zu installieren. Aus irgendeinem Grund funktionierte dies auf einer Maschine gut und auf einer anderen fehlgeschlagen. Das gleiche Verfahren. Es gab geringfügige Unterschiede in der bestehenden Konfiguration, daher glaube ich, dass einer dieser Unterschiede den Installer kaputt gemacht hat. Wie auch immer, danke für die Aktualisierung mit Ihrem Erfolg. –

+2

Die zwei Dateien, die kopiert werden müssen, sind "Microsoft.WebApplication.Build.Tasks.Dll" und "Microsoft.WebApplications.targets". Diese Dateien werden vom Installationsprogramm für Visual Studio 2008 Web Deployment-Erweiterungen hinzugefügt. Das manuelle Kopieren auf den Build-Server ist ein Hack, der notwendig ist (denke ich), da dieses Installationsprogramm nicht ausgeführt wird, wenn VS 2008 nicht installiert ist und nur wenige Leute möchten, dass die IDE auf ihrem Build-Server installiert wird. –

0

Ich hatte gerade ein ähnliches Problem, bei dem einige Dateien nicht auf meinem Dev-Server erstellt/verschoben wurden. Das Problem endete mit der Berechtigung, da ich einen Ordner manuell gelöscht habe. Aus irgendeinem Grund wurden das Netzwerkdienstkonto und die Berechtigungen nicht vom neu erstellten Ordner geerbt.

0

ich den folgenden Tag in meiner Projektdatei gefunden es fest:

<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> 

z.B.

<PropertyGroup> 
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> 
</PropertyGroup> 
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> 
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" /> 
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" /> 

Vielleicht ist VSToolsPath vor diesem Punkt auf meinem lokalen Rechner gesetzt, aber nicht auf dem Build-Server.