2010-11-08 23 views
2

J'ai un projet C++ dans VS2010 et un projet C# qui doit consommer cette sortie de projet C++ (il l'utilise pour p/invoke). Je pensais pouvoir faire en sorte que le projet C++ soit construit avant le projet C# en éditant les "dépendances du projet ..." dans la solution mais cela ne semble pas avoir d'effet, la construction de mon buildserver ne respecte pas ce paramètre (J'utilise TeamCity pour amorcer un fichier MSBuild qui construit l'ensemble du fichier de solution)Dépendances du projet VS2010

Je pense que cela fonctionnait, est-ce que quelque chose a changé avec VS2010? Ou devrais-je déclarer la dépendance d'une autre manière?

SOLUTION: L'astuce était de modifier manuellement le fichier csproj extérieur VS2010 et ajouter une section comme ceci:

<ProjectReference Include="..\CobraLib\CobraLib.vcxproj"> 
    <Project>{598506DA-91DA-4F25-948D-A14CB16ABEBA}</Project> 
    <Name>CobraLib</Name> 
    <ReferenceOutputAssembly>false</ReferenceOutputAssembly> 
</ProjectReference> 

qui a fait le processus serveur de construire mes projets dans le bon ordre. Seul inconvénient est que VS2010 affiche une erreur sur la référence du projet ("pas un projet .NET"), mais sinon les choses fonctionnent comme je l'ai prévu

Répondre

1

Comment ajoutez-vous la dépendance? via VS2010 ou l'édition de certains fichiers?

+0

J'utilise initialement la boîte de dialogue VS2010 et j'ai vérifié que le fichier de solution contient les paramètres postProject. –

+0

Vérifiez le fichier de projet du projet C#, il devrait avoir un élément spécifiant le projet C++ comme une dépendance. Vous pouvez également essayer d'augmenter la verbosité msbuild dans TeamCity et regarder les journaux, ce qui pourrait vous donner une idée de ce qui se passe. Je suppose que cela fonctionne sur votre machine locale. – radical

+0

Dois-je modifier celui-ci à la main? Je n'arrive pas à l'ajouter en utilisant VS2010 (peut-être que j'ai installé une extension AddReference qui l'interdit). Je voudrais que la sortie du projet C++ se termine à côté de la sortie du fichier C#. –