web-dev-qa-db-fra.com

Package cible MSBuild introuvable

Je souhaite empaqueter mon projet d'application Web VS2010 prêt à être déployé avec msdeploy. Sur la machine de développement, je peux le faire en utilisant:

MSBuild.exe "C:\path\to\WebApp.csproj" /target:package

Mais sur mon serveur de build, j'obtiens cette erreur:

erreur MSB4057: le "package" cible n'existe pas dans le projet.

Qu'est-ce que je manque sur le serveur de build?

71
Andrew Davey

Je viens de faire fonctionner cela sans installer VS2010 en suivant ces étapes sur le serveur de build:

  1. Si .NET Framework 4 n'est pas installé, installez-le
  2. Installez l'outil de déploiement Web à partir de http://www.iis.net/download/webdeploy
  3. À partir du dossier C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0 sur votre machine de développement, copiez les dossiers "Web" et "Web Applications" dans le répertoire équivalent de votre serveur de build.

Cela semble fonctionner pour moi

108
spmason

Je sais que c'est une vieille question, mais j'ai récemment rencontré le même problème et aucune des réponses n'a aidé. Il me manquait le fichier suivant sur mon serveur de build:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio
    \v11.0\Web\Microsoft.Web.Publishing.targets

Il est importé par:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio
    \v11.0\WebApplications\Microsoft.WebApplication.targets

J'espère que cela aide quelqu'un comme moi :)

9
joozek

Vous pouvez installer MSBuild.Microsoft.VisualStudio.Web.targets package. Pas besoin de copier manuellement les cibles pour construire le serveur.

5
Der_Meister

J'ai rencontré le même problème. A fini par résoudre en ajoutant ceci:

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

<Import Project="$(MSBuildToolsPath)\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" />

à ma fiole .csproj.

3
contrashadow

Vous devez avoir .Net 4.0 installé sur le serveur de build. L'installation de .Net 4.0 mettra le nouveau MSBuild 4.0 qui prend en charge la création de packages d'applications Web.

En outre, lorsque vous exécutez msbuild.exe, assurez-vous que vous exécutez celui qui se trouve dans le dossier du framework .Net 4.0.

1
Paul Lemke