2010-07-30 3 views
0

J'ai créé un contrôle personnalisé à l'aide de VB.NET dans Visual Studio 2008, qui fournit des fonctionnalités étendues de mappage et de suivi à une application de recherche et de secours. Le problème que j'ai est que dans un certain nombre d'endroits, j'ai besoin de définir le chemin vers les applications principales exécutables afin de trouver un certain nombre de répertoires dont le contrôle a besoin pour fonctionner correctement. Tout fonctionne très bien quand je l'utilise dans VS, mais lorsque je tente d'incorporer le contrôle sous une forme dans une solution séparée, je reçois l'erreur suivante:Définition d'un chemin d'accès à l'exécutable pour un contrôle personnalisé

Failed to create component 'MainControl'. The error message follows: 'System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Program Files\Microsoft\Visual Studio 9.0\Common\IDE\GIS\Data\Default...

Cela semble indiquer qu'il est à la recherche de la \ SIG \ Data \ Répertoire par défaut dans le chemin du programme Visual Studio mais j'ai utilisé Application.StartupPath pour définir cet emplacement dans le contrôle.

Cette erreur se produit uniquement lorsque vous essayez d'incorporer le contrôle sous une forme en dehors de la solution de contrôle. La solution que j'ai créée pour développer ce contrôle a deux projets (un pour le contrôle et un pour un formulaire de test pour faire le débogage)

Quelqu'un peut-il me donner des conseils à ce sujet?

Répondre

1

Cela se produit lorsque votre contrôle exécute du code pendant qu'il est utilisé dans le concepteur. Il fait, des choses comme le constructeur, l'événement Load, l'événement Paint, etcetera sera exécuté lorsque vous déposez le contrôle sur un formulaire dans Visual Studio.

Vous devez utiliser la propriété DesignMode pour empêcher l'exécution de ce code et son blocage lorsque le répertoire de travail actuel est incorrect. Ce sera faux dans le concepteur, le répertoire de travail est Visual Studio, pas l'application dans laquelle il sera éventuellement utilisé. Ou utilisez des chemins absolus, pas des chemins relatifs.

Si cela n'aide pas, comment déboguer les problèmes de temps de conception est explained here.

+0

Merci Hans qui a fait l'affaire. C'est assez marrant, je travaille sur VB.NET depuis environ trois ans et c'est la première fois que je suis confronté à ce problème. Quoi qu'il en soit, votre solution était la bonne. – Gerry

Questions connexes