2014-09-02 3 views
1

J'essaye d'ajouter la partie tierce lib à mon ajout 2013 d'Outlook écrit en C#. Il se compose de 2 composants: .Net wrapper et C++ dll lui-même.VSTO Outlook 2013 troisième partie dll ne pas être trouvé

J'ai référencé. Net wrapper dans le projet d'ajout et ajouté C++ lib comme une copie sur la ressource de construction.

Apparemment, Office Runtime place chaque .Net lib référencée par un plug-in dans un dossier distinct excluant C++ lib comme non référencé. Et plugin ne parvient pas à localiser C++ lib car il devrait être dans un même dossier avec la DLL d'exécution.

dll plugin Sample emplacement:

C:\Users\UserName\AppData\Local\assembly\dl3\TMGBBYEC.3JC\QE21JQR6.YRW\4a3206fe\4acfc661_ccc6cf01\SomeLibName.dll 

Toutes les idées comment résoudre ce problème?

Répondre

1

Essayez quelque chose comme ce qui suit pour déterminer l'emplacement de la DLL.

string codebase = Assembly.GetExecutingAssembly().CodeBase; 
var vUri = new UriBuilder(codebase); 
string vPath = Uri.UnescapeDataString(vUri.Path + vUri.Fragment); 
string directory = Path.GetDirectoryName(vPath); 
if (!string.IsNullOrEmpty(vUri.Host)) directory = @"\\" + vUri.Host + directory; 
+0

Merci J'utilisais la propriété Location sur l'ensemble, je recevais probablement l'emplacement GAC'ish. Dans la réalité, addin a été référencé à partir de bin/debug, en vérifiant la version installée. – v00d00

+0

Et la version installée également le dossier d'installation de ciblage. Ok, il est clair que C++ lib est la source de la douleur, car nous avons réussi à ajouter des libs natives Sqlite ... – v00d00

Questions connexes