1

J'essaie de mettre en œuvre ce que je vois dans cet article: TFS and msbuild version number with last changeset. C'est-à-dire, j'essaye d'obtenir le dernier nombre de changeset au temps de construction ainsi je peux l'employer dans un AssemblyVersionInfo.cs. J'utilise VS 2008 et TFS 2008. J'ai installé le pack d'extension MSBuild v3.5.9.0 (x64). C'est dans C: \ Program Files \ MSBuild \ ExtensionPack. Voici mon projet MSBuild:MSBuild, Extension Pack et TfsVersion

<Project ToolsVersion="3.5" DefaultTargets="Default" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Import Project="C:\Program Files\MSBuild\ExtensionPack\MSBuild.ExtensionPack.tasks"/> 
    <Target Name="Default"> 
    <TfsVersion TfsLibraryLocation="C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies" 
       LocalPath="$(SolutionRoot)"> 
     <Output TaskParameter="Changeset" PropertyName="ChangesetNumber"/> 
    </TfsVersion> 
    <Message Text="TFS ChangeSetNumber: $(ChangesetNumber)" /> 
    </Target> 
</Project> 

Voici comment je courais le script:

C:\Build\TeamBuildTypes\Nightly_Main>MSbuild test.proj 

Voici mon message d'erreur:

C:\Build\TeamBuildTypes\Nightly_Main\test.proj(4,5): error MSB4062: The "MSBuild.ExtensionPack.VisualStudio.TfsVersion" task could not be loaded from the asse 
mbly C:\Program Files (x86)\MSBuild\ExtensionPack\MSBuild.ExtensionPack.dll. Could not load file or assembly 'file:///C:\Program Files (x86)\MSBuild\ExtensionPack\MSBuild.ExtensionPack.dll' or one of its dependencies. The system cannot find the file specified. Confirm that the <UsingTask> declaration is correct, and that the assembly and all its dependencies are available. 

Toute aide appréciée.

Merci, Scott

+0

Semble évident, mais ... ce fichier existe-t-il réellement sur la machine de construction? Est-ce peut-être un système d'exploitation 32 bits. Avez-vous regardé le journal de fusion pour voir si c'est un problème de dépendance? –

+0

les numéros d'attributs de version sont limités à uint16 donc si cette approche est bonne, vous finirez par échouer à la version de vos assemblys. –

Répondre

1

On dirait que MSBuild.ExtensionPack.tasks essaie de trouver les bibliothèques pas où ils se trouvent. Vous pouvez ouvrir ce fichier et l'ajouter dans le haut du fichier

<ExtensionTasksPath>C:\Program Files\MSBuild\ExtensionPack\</ExtensionTasksPath> 

en place d'autres déclarations ExtensionTasksPath (il suffit de les commenter et ajouter ce sujet). Cela devrait corriger le problème des chemins.
Je suppose qu'il existe C:\Program Files\MSBuild\ExtensionPack\MSBuild.ExtensionPack.dll

Questions connexes