4 votes

Erreur MSB4062 lors de l'utilisation de ServiceController

J'utilise Visual Studio 2010 avec TFS 2010 sur une machine x64.

J'essaie d'utiliser la cible MSBuild Community Tasks dans ma construction. Cette cible existe dans le contrôle de la source. Donc, dans mon fichier csproj, j'importe cette cible particulière, mais j'obtiens maintenant l'erreur suivante :

erreur MSB4062 : La tâche "MSBuild.Community.Tasks.Attrib" n'a pas pu être chargée à partir de l'assemblage. C:\Program Fichiers (x86) \MSBuild\MSBuildCommunityTasks\MSB uild.Community.Tasks.dll. Impossible de charger le fichier ou l'assemblage 'file:/// C:\Program F iles (x86) \MSBuild\MSBuildCommunityTasks\MSBuild.Community.Tasks.dll ou l'un des éléments suivants ses dépendances. Le système ne trouve pas le fichier spécifié. Confirmez que la déclaration est correcte, que l'assemblage et toutes ses dépendances sont disponibles, et que la tâche contient une classe publique qui implémente Micros oft.Build.Framework.ITask. [ C:\SampleTest\SampleTest.csproj ]

Voici mon code :

   <Import Project="..\..\Builds\Common\MSBuildTasks\MSBuild.Community.Tasks\MSBuild.Community.Tasks.Targets" />
   <Target Name="BeforeBuild">
    <PropertyGroup>
      <MyService>ServiceName</MyService>
    </PropertyGroup>
    <ServiceController ServiceName="$(MyService)" Action="Stop" />-->
  </Target>

Des idées sur ce qui précède ?

Pourquoi MSBuild essaie-t-il de chercher la dll ailleurs alors que je l'ai spécifiée dans le fichier du projet ?

Merci d'avance,

5voto

Andrew Stanifer Points 11

Je pense que le problème vient de l'intérieur de la MSBuild.Community.Tasks.Targets c'est ce fichier qui fait effectivement référence à l'interface de l'entreprise. MSBuild.Community.Tasks.dll montage.

Si vous ouvrez le fichier, vous pouvez voir un tas de UsingTask éléments, tels que :

<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Attrib" />

Le site $(MSBuildCommunityTasksLib) est définie en haut du fichier comme :

<PropertyGroup>
    <MSBuildCommunityTasksPath Condition="'$(MSBuildCommunityTasksPath)' == ''">$(MSBuildExtensionsPath)\MSBuildCommunityTasks</MSBuildCommunityTasksPath>
    <MSBuildCommunityTasksLib>$(MSBuildCommunityTasksPath)\MSBuild.Community.Tasks.dll</MSBuildCommunityTasksLib>
</PropertyGroup>

Il semble donc que vous deviez définir le $(MSBuildCommunityTasksPath) avant d'appeler <Import> .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X