2010-04-28 8 views
15

Visual Studio 2010 scheint mit diesem Import in Web-Anwendung zu bestehen ProjekteWas bewirkt der Microsoft.WebApplication.targets-Import in VS 2010-Webanwendungsprojekten?

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" /> 

Was dieser Import uns nicht geben und wird es wirklich erforderlich?

Nebenbei bemerkt, wenn Sie diesen Import mit einem Texteditor entfernen Visual Studio wird es erneut hinzufügen.

Der Grund, warum ich frage, ist, wenn das Projekt auf einem Build-Server kompiliert wird, dass das Ziel nicht existiert, weil Visual Studio nicht installiert ist.

Antwort

4

enthält Einträge für MSBuild C: \ Programme \ MSBuild \ Microsoft \ Visualstudio \ v10.0 \ WebApplications

Verwenden Sie die Option veröffentlichen in VS 2010 über ein ZIP-Paket zu erstellen, die Sie auf Ihrem Server bereitstellen können (MS Deploy)

dies lesen: http://vishaljoshi.blogspot.com/2009/03/how-does-web-deployment-with-vs-10.html

Welche Build-Server verwenden Sie?

+0

Ich benutze Team City. – Simon

+1

Kopiere den Inhalt des obigen Pfades und lege ihn in den gleichen Pfad auf deinem Bulid-Server. Stellen Sie sicher, dass .NET 4 auf dem Build-Server installiert ist. Versuche zu bauen. –

+1

nicht so einfach, wenn eine dritte Partei den Build-Server besitzt http://teamcity.codebetter.com/overview.html. Aber ich werde sie fragen – Simon

3

Wir haben eine Situation, in der unser CI-Build-Server auch einige Websites hostet. Es ist keine Version von Visual Studio installiert, daher hat die Verbindung zu den MSBuildExtensions unseren Build beim Upgrade auf vs2010/.net4.0 unterbrochen.

Es scheint Overkill zu sein, VS2010 auf dem Build-Rechner zu installieren, wenn es kein Dev-Rechner ist ... könnte ich einfach das MSBuild Extension Pack (http://msbuildextensionpack.codeplex.com/) auf dem Build-Server installieren und es funktioniert? Ich kann derzeit nicht überprüfen, ob das funktioniert, aber von dem, was ich vor diesem Beitrag erreichen konnte, scheint es eine bessere Option zu sein, als VS2010 zu installieren.

-Daniel

+3

guten Punkt daniel. Obwohl Ihr Post ein Kommentar sein sollte keine Antwort – Simon

+0

Ich habe das versucht und leider denke ich nicht, dass das MSBuild Extension Pack das WebApplications-Ziel enthält, das in dieser Frage erwähnte. – Sean

11

Wie in den Kommentaren zu Raj Kaimal Antwort vorgeschlagen, erhalten diese Arbeiten Sie auf den Ordner auf der gleichen Stelle auf dem Build-Rechner kopieren.

Wenn Sie möchten, können Sie diesen Ordner auch an anderer Stelle in Ihrem Computer speichern, auch relativ zu Ihrem Projekt. Sie müssen nur etwas zum csproj hinzuzufügen MSBuildExtensionsPath zu umleiten ..

Zum Beispiel, ich habe folgend in meinem csproj (arbeitet für VS2010 und VS2012):

<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="false" /> 
<PropertyGroup> 
    <MSBuildExtensionsPath32>..\lib\MSBuild.MSVS\</MSBuildExtensionsPath32> 
</PropertyGroup> 
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets"/> 

Dann in meinem Ordner lib (die Geschwister des Ordners ist die csproj enthält), habe ich die folgenden Verzeichnisse kopiert:

  1. % Programfiles% \ MSBuild \ Microsoft \ Visualstudio \ v10.0 \ WebApplications → MSBuild.MSVS \ Microsoft \ Visualstudio \ v10.0 \ WebApplications
  2. % Programfiles% \ MSBuild \ Microsoft \ Visualstudio \ \ v10.0 Web → MSBuild.MSVS \ Microsoft \ Visualstudio \ v10.0 \ Web
+1

Das hat gut für mich funktioniert und ist meine bevorzugte Lösung. +1 – Llyle

0

Wenn Sie, nicht aus dem Build-Server bereitstellen dann Sie kann die Microsoft.WebApplication.targets auf dem Buildserver deaktivieren. Siehe meine Antwort hier: https://stackoverflow.com/a/35781566/4955344

+0

Vielleicht sollte die ursprüngliche Frage als ein Duplikat dieses Links markiert werden? – Kmeixner

Verwandte Themen