La tâche" TransformXml " n'a pas été trouvée (erreur MSB4036) sur TeamCity build

Bonjour j'ai build server avec TeamCity. Mon projet est L'Application web Sitecore. J'utilise TDS (HedgehogDevelopment). J'ai les paramètres de construction de setup dans TeamCity avec MS build et il semble que cela fonctionne lorsque le projet TDS est désactivé dans le gestionnaire de configuration de build. Mais alors il enebled je reçois l'erreur nette

C:Program Dossiers (x86)MSBuildHedgehogDevelopmentSitecoreprojet v9.0HedgehogDevelopment.SitecoreProject.cibles (310, 5): erreur MSB4036: le La tâche" TransformXml " n'a pas été trouvée. De vérifier la suivant: 1.) Le nom de la tâche dans le fichier de projet est le même que le nom de la tâche de la classe. 2.) La classe de tâches est "public" et implémente le Microsoft.Construire.Framework.Interface ITask. 3.) Tâche est correctement déclaré dans le fichier de projet, ou dans le *.fichiers de tâches situés dans le "C:WindowsMicrosoft.NETFramework64v3.5" annuaire. Projet NetKey.TDSMasterMyProject.TDSMaster.scproj a échoué. Projet Site WebMonprojet.la sln a échoué

la description de l'aide dans l'erreur n'est pas un cas pour moi. Je n'ai pas VS 2012 sur Machine de construction. J'ai installé Microsoft Visual Studio 2012 Shell pour soutenir mon projet web. Comment le résoudre ? Grâce.

23
demandé sur Yan Sklyarenko 2013-05-20 13:43:55

5 réponses

TransformXML fait partie de la ASP.NET outils de publication sur le Web. En tant que tels, ils sont généralement fournis avec une installation Visual Studio sur votre serveur de construction et nécessitent plus que la seule version Shell de Visual Studio. L'installation de Visual Studio Express Web Edition pourrait aussi faire l'affaire.

Vous pouvez essayer d'installer le Web-Deploy paquet pour voir si c'est suffisant, mais d'habitude je n'installe que la version complète de Visual Studio sur un agent de construction. C'est légal sous MSDN Les licences d'abonnement.

après quelques expériences, je peux dire que vous devez installer au moins les outils de développement Web Visual Studio sur le serveur de construction pour que ces tâches soient installées de la manière officielle. Je soupçonne que l'installation du Visual Studio Express Web Edition suffirait.

enter image description here

21
répondu jessehouwing 2013-10-24 06:27:22

essaye ceci:

<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" />
17
répondu Choquequirao 2014-03-13 16:42:50

Brève Réponse-Importation Explicite

Ce que j'avais à faire:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets" Condition="!Exists('$(VSToolsPath)\Web\Microsoft.Web.Publishing.targets')" />

Longue Réponse

quand vous faites Fichier - > Nouveau Projet Web dans VS2013 vous obtenez ce qui suit à l'intérieur de votre *.csproj fichier:

<PropertyGroup>
  <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
  <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)' != ''" />

$(VisualStudioVersion) toujours évalué à 11.0 pour moi sur les machines de construction et sur les machines de développement multiples. Même sur les machines avec VS2013, qui est 12.0.

en plongeant dans ce que j'ai trouvé dans le Microsoft.WebApplication.targets à partir de ci-dessus, il a une ligne pour importer le fichier que nous voulons vraiment Microsoft.Web.Publishing.targets seulement si il existe, comme sur la ligne 377:

<!--Import publishing target-->
<Import Project="..\Web\Microsoft.Web.Publishing.targets" Condition="Exists('..\Web\Microsoft.Web.Publishing.targets')" />

Donc, pour moi, c'est une implicite importation de Microsoft.Web.Publishing.targets.

le problème est que si ce fichier n'existe pas, il ne fait rien et vous ne le savez pas jusqu'à ce que vous obteniez l'erreur en essayant d'utiliser le TransformXml tâche.

Installation de VS2013 n'avez pas installé Microsoft.Web.Publishing.targets dans le 11.0 répertoire. Il a l'installer dans le 12.0 répertoire. Je suppose que si j'ai installé VS2012, il le faire.

En tout cas, j'ai été en mesure de le résoudre par explicitement importation Microsoft.Web.Publishing.targets12.0 répertoire s'il n'existait pas et n'était pas implicitement importés par Microsoft.WebApplication.targets comme ceci:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets" Condition="!Exists('$(VSToolsPath)\Web\Microsoft.Web.Publishing.targets')" />
12
répondu Rick Glos 2014-11-26 21:33:13

Dans Visual Studio 2017 par défaut, la plupart(ou la totalité?) les composants ne sont pas installés, mais vous pouvez ajouter ce qui est nécessaire (i.e. Asp.Net et Développement web) comme décrit danshttps://docs.microsoft.com/en-us/visualstudio/install/modify-visual-studio.

sur ma machine l'installateur situé à "C:\Program fichiers (x86)\Microsoft Visual Studio\Installer\vs_installer.exe"!--3-->

1
répondu Michael Freidgeim 2017-03-13 21:19:43

j'ai eu le même problème après avoir déclassé les outils TypeScript de 2.4.10 à 2.3.3 dans VS2015.

Solution:

j'ai supprimer ce à partir de Microsoft.Tapuscrit.objectifs fichier

    <FormatLocalizedString Condition="'$(TypeScriptVersionCheckResult)' == 'NoneSpecified'"
  Culture="$(PreferredUILang)" 
  Name="TypeScriptNoVersionWarning" 
  Arguments="$(LastKnownTypeScriptVersion)">
  <Output TaskParameter="String" PropertyName="TypeScriptNoVersionWarning" />
</FormatLocalizedString>

<FormatLocalizedString Condition="'$(TypeScriptVersionCheckResult)' == 'Downgrade' OR '$(TypeScriptVersionCheckResult)' == 'Upgrade'"
  Culture="$(PreferredUILang)" 
  Name="TypeScriptVersionMismatchWarning" 
  Arguments="$(TypeScriptToolsVersion);$(LastKnownTypeScriptVersion)">
  <Output TaskParameter="String" PropertyName="TypeScriptVersionMismatchWarning" />
</FormatLocalizedString>
0
répondu imfloflo 2017-07-12 08:56:15