2012-11-04 4 views
3

J'ai une bibliothèque de classes en dehors de mon répertoire de solution, donc j'ai une référence comme ceci dans le fichier * .sln "../SomeDependency.csproj" Dans VS tout est ok , mais TeamCity a échoué lors de la création de ma solution. Je devine qu'il copie tout le répertoire de solution ainsi la relation n'existe plus.Comment inclure des dépendances en dehors du répertoire de solution dans le projet .NET pour TeamCity

Ceci est une erreur que j'avais C: \ TeamCity \ BuildAgent \ work \ 799db5684a98650b \ blablabla.sln.metaproj erreur MSB3202: Le fichier de projet « C: \ TeamCity \ BuildAgent \ work \ 799db5684a98650b .... \ Shared \ Bibliothèques \ mysecretlib rary \ mysecretlibrary.csproj "n'a pas été trouvé.

+0

Utilisation de TFS pour le contrôle de source? –

+0

Quel est le message d'erreur? –

+0

mercurial contrôle de source – Bohdan

Répondre

2

La bibliothèque de classes en dehors de votre solution produit un exécutable ou une DLL, probablement une DLL. Lorsque vous travaillez avec TeamCity, cette DLL est ce que vous devriez référencer dans votre projet, plutôt que le projet externe lui-même. Si vous souhaitez que la bibliothèque externe soit compilée sur vos TeamCity Build Agents, ajoutez une autre Configuration de construction pour créer la solution et postez-la comme artefact. Vous pouvez ensuite ajouter une référence à votre projet pour télécharger cet artefact dans un emplacement connu et référence directement. (pour TeamCity build, vous pouvez le définir comme une dépendance d'artefact dans la configuration de construction, pour les builds locaux, je vous suggère de voir comment vous pouvez fournir l'assembly externe automatiquement, je n'ai pas utilisé Mercurial)

Si cela ne va pas Pour travailler pour vous, votre autre option consiste à intégrer cette bibliothèque dans la solution. Ne le faites que si c'est le seul endroit où la bibliothèque est utilisée! Je ne préconise pas de copier des projets autour de vos solutions, si elles sont utilisées dans plusieurs endroits, vous devez les fournir de manière compatible, comme référence d'artefact dans TeamCity, et mieux que vous puissiez fournir l'assemblage pour vos constructions locales.

Questions connexes