Inscription COM Dll référencées sur un serveur de build

Nous sommes en train de développer une application en C# qui fait référence à un peu de COM bibliothèques (AutoIT par exemple).

Je suis y compris tous les composants référencés sous contrôle de code source, dans une 3e partie "Libs" le dossier.

Le problème est que COM dll n'avez pas de HintPath propriété dans la .fichier csproj, et je suppose que ceux-ci doivent être enregistrés manuellement à l'aide de regsvr32 (ou en utilisant un script de quelque sorte).

Je suis actuellement à la recherche dans la création d'un MSBuild script qui sera exécuté avant chaque génération, mais je ne pouvais pas comprendre si je dois être manuellement appeler regsvr32.exe ou d'utiliser certains prédéfinis tâche MSBuild?

Actuellement, c'est ce que j'ai attmpted comme un test:

 <?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
  <ItemGroup>
    <MyAssemblies Include="D:\*.dll" />
  </ItemGroup>
  <Target Name="Build">
    <RegisterAssembly
      Assemblies="@(MyAssemblies)" >
    </RegisterAssembly>
  </Target>
</Project>

Cela génère des erreurs que la Dll que j'ai placé dans le dossier ne sont pas valides Dll.

Ce qui est une bonne solution pour ce problème?

EDIT:

Projets qui font référence à des dll COM ont quelque chose de semblable à cela dans le .csproj fichier:

<COMReference Include="AutoItX3Lib">
      <Guid>{F8937E53-D444-4E71-9275-35B64210CC3B}</Guid>
      <VersionMajor>1</VersionMajor>
      <VersionMinor>0</VersionMinor>
      <Lcid>0</Lcid>
      <WrapperTool>tlbimp</WrapperTool>
      <Isolated>False</Isolated>
    </COMReference>

Cela ne comprend pas le soupçon chemin que d'autres assemblées, donc sur un serveur de build, le référencés COM dll est introuvable.

Lors de l'enregistrement de la dll COM sur le serveur de build à l'aide de REGSVR32, la génération réussit.

OriginalL'auteur lysergic-acid | 2011-09-18