Le partage de code entre les 2 projets sans une dll
Comment puis-je avoir de partage de code entre les deux projets sans en faire une dll?
La question est: j'ai un outil qui permet de synchroniser les utilisateurs & groupes à partir de LDAP à une base de données.
Maintenant l'outil est un service windows, mais le test est très difficile et prend du temps.
C'est pourquoi j'ai fait une application de console où je peux tester la synchronisation LDAP, puis il suffit de copier le respectifs code source des fichiers sur le projet de service.
Mais... en gardant la commune de fichiers dans la synchronisation est un peu un problème.
Je ne veux pas en faire une dll, car c'est probablement ce qui me pose un problème avec
le 3ème projet, un programme d'installation de windows (pour le service) où je dois utiliser ExecutingAssembly chemin...
Est-il un moyen de partager le code sans faire une dll?
Automagic statique de la liaison, pour ainsi dire ?
- Sur vista, et les nouveaux liens symboliques peuvent être utiles.
- il n'y a aucun moyen de stocker des liens symboliques dans sourcecontrol/facilement des sauvegardes - vous faire à la fois de ceux qui, à droite? =)
- stackoverflow.com/questions/954560/... sons comme git stocke sym-liens-sym-liens. Aucune idée si ça fonctionne sur windows, bien que depuis je n'utilise pas vista encore. Et selon les cas d'utilisation, il peut être suffisant pour ajouter le lien symbolique à l'ignore-fichier et créer manuellement pour chaque codeur. Un peu hackish, mais devrait fonctionner.
- Mais la VS "Ajouter en tant que Lien" fonctionnalité semble plus propre à moi. Ne pas connaître celui.
Vous devez vous connecter pour publier un commentaire.
Comment ajouter un fichier en tant que lien.
Dans Visual Studio, cliquez droit sur votre console application de test du projet -> sélectionnez ajouter un fichier existant -> dans le fichier de la boîte de dialogue ajouter accédez à des fichiers dans votre projet de service windows -> sélectionnez les fichiers que vous souhaitez partager -> et sur le bouton ajouter, sélectionnez ajouter comme option de lien.
Vous pouvez ajouter un fichier à un projet en tant que lien. Sur Ajouter un Élément Existant dialogue sur le bouton Ajouter a une liste déroulante sur sa droite. Utilisez ce pour sélectionner "Ajouter en tant que Lien":
Mettre le fichier en tant que solution de l'article et l'ajouter en tant que lien à chaque projet.
Comment à propos de la main-modifier les fichiers de projet pour pointer vers le même fichier source?
Une autre option - mettre les deux projets dans le même dossier. Ajouter une classe à un, puis dans l'autre ajouter projet de classe existant et le point à la classe vient d'être créé.
Vous pouvez:
Tout ce que dit, la meilleure approche serait de mordre la balle et de stocker le code partagé dans un partage de l'assemblée (DLL). Ce qui se passe lorsque vous déciderez de, par exemple, exposer ce code par l'intermédiaire d'un service WCF? Ça commence à devenir plus compliqué alors que vous avez 3 endroits qui font référence à la même fichiers de code. Ne pensons pas seulement à propos de ce qui rend votre vie plus facile maintenant, pensez à ce que vous faites de votre vie (et celle de personne d'autre qui a à maintenir le code plus facile à l'avenir! =)
Necromancing - Comme par Visual Studio 2017:
Vous pouvez créer un projet partagé, puis de référence du projet partagé dans un autre projet.
Il utilisera le cadre de version et les bibliothèques du projet de référence de la commune-projet de. Vous pouvez également utiliser le même projet partagé dans plusieurs projets, à condition que vous n'obtenez pas de conflit.
C'est essentiellement statique liaison sur un niveau du code source.
Cela fonctionne aussi avec le HTML&JavaScript fichiers (plus précisément, elle vise à publier), mais avec le HTML & JS fichiers, vous rencontrez des problèmes lors du débogage...
C'est sous Classique "Bureau Windows", mais vous pouvez également l'utiliser pour .NET de Base etc.
Si vous souhaitez partager la fonctionnalité, vous devez utiliser une DLL ou similaire.
Depuis ce que vous souhaitez partager est la source, ce que vous êtes essentiellement de partage de fichier partage de. De sorte que vous pouvez le faire en faisant vos projets de référence externe de sources ou vous pouvez avoir votre contrôle de source de le faire pour vous.
Si vous utilisez Visual SourceSafe, vous pouvez faire un lien entre les deux dossiers. VSS, assurez-vous qu'ils sont considérés comme un même fichier.
Je vais vous décrire la configuration que nous utilisons pour gérer et tester nos Fenêtres, des projets de Service. Tout ceci ne répond pas à la question du "partage de code sans une DLL" (Unmesh la réponse prend soin de cela), je pense que l'OP n'a probablement pas réaliser à quel point c'est facile avec une DLL. En tout cas, j'espère que cela les aidera à quelqu'un.
Créer une solution, LDAPSync. Créer des trois projets dans cette solution:
LDAPSyncLib est un projet DLL qui contient toutes vos affaires de la logique et de la fonctionnalité principale.
LDAPSyncSvc est un projet de Service Windows qui contient deux classes, un service de contrôleur de classe qui hérite de ServiceBase, et un Installateur classe pour votre service. Ce projet a un "projet de référence" pour LDAPSyncLib.
LDAPSyncTest est une application d'interface utilisateur graphique (WinForms, WCF, etc.) ou une application console, en fonction de vos besoins. Ce projet a également un "projet de référence" pour LDAPSyncLib. Son seul but est de fournir une interface qui vous permet d'effectuer des appels dans une logique d'entreprise à des fins de test. Dans Visual Studio, comme votre "Projet de Démarrage".
Maintenant, lorsque vous exécutez dans le debug via Visual Studio, vous obtiendrez un joli petit GUI ou de la fenêtre de commande que vous pouvez utiliser pour effectuer manuellement les appels de test. Lorsque vous installer en tant que Service Windows, le LDAPSyncSvc du projet de la classe contrôleur prendra le relais et gérer toutes les demandes de service (start, stop, pause, etc.)
Nous avons autour de 30-maison de Windows Service des projets que nous avons été en permanence la gestion, de développement et de test depuis plus d'une décennie et ce flux de travail a été d'une aide inestimable dans rapidement trouver et corriger des bugs, lorsqu'ils surviennent. Bonne chance avec votre projet et j'espère que cela aide certains futurs Googlers.