2011-01-10 30 views
6

Sto utilizzando alcune DLL Win32 in un componente aggiuntivo di Outlook 2007.Outlook 2007 Addin C# - Percorso di avvio

Così ho aggiunto le DLL, con l'azione build "Contenuto" e copia nella directory locale.

per ottenere il percorso a loro, io normalmente uso:

Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "MyDll.dll"); 

Quando pubblicato da ClickOnce, Assembly.GetExecutingAssembly non mi dà il percorso standard per tutti i miei file ClickOnce. I miei file sono in % appdata% .. \ Local \ Apps \ 2.0, ma l'assembly è in % appdata% .. \ Local \ assembly.

C'è un modo migliore per ottenere il percorso di queste dll da un componente aggiuntivo di Outlook distribuito da ClickOnce?

+0

provato anche Application.StartupPath, ma che mi dà il percorso exe di Outlook. – jonathanpeppers

risposta

2

Questo codice mi sta dando il percorso corretto ora:

string path = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "MyDll.dll"); 

ho dovuto usare SetupInformation durante l'analisi argomenti della riga di comando, e un po 'di debug mi ha portato a questa proprietà.

Postò indietro se mi dà qualche problema, dato che dovremo installare su diverse macchine e vedere cosa succede.

+0

Stai utilizzando un progetto di installazione per distribuirlo? È possibile specificare una cartella nel file system e specificare direttamente i percorsi. – bdwakefield

+0

È ClickOnce, dice nella mia domanda. – jonathanpeppers

0

Hai provato ad aggiungerli come riferimento? Credo che l'add-in dovrebbe conoscere la posizione se le metti in questo modo. Osserva come gestisce gli Interfacce di Office (e altri riferimenti) quando li aggiungi: non è necessario specificarli, basta fare riferimento al codice.

+0

Questi sono riferimenti .Net. Non è possibile farlo con DLL Win32. – jonathanpeppers

+0

Ancora un novizio in programmazione C#. la prima cosa che mi è venuta in mente. –

1

Penso che questo sia esattamente quello che stai cercando - come trovare le DLL che hai distribuito con la tua applicazione VSTO.

http://robindotnet.wordpress.com/2010/07/11/how-do-i-programmatically-find-the-deployed-files-for-a-vsto-add-in/

+0

Questo corrisponde alla mia risposta accettata, ma si basa su Assembly.GetExecutingAssembly(), quindi penso di preferire la risposta accettata. – jonathanpeppers

+0

Qualunque cosa funzioni per te, amico. Solo FYI, ho ricevuto la risposta dal lead del team di prodotti ClickOnce. – RobinDotNet

Problemi correlati