Отладка пользовательской библиотеки DLL, на которую ссылается макрос Visual Studio
Я ранее спросил:Добавить dll ссылку на макросы Visual Studio
идея создания макросов на моем языке (C #) облегчает создание макросов.The problem is that I cannot debug the dll
To solve the problem I have tried:
I placed myClassLibrary.pdb
next to myClassLibrary.dll
hoping I where going to be able to debug the methods in the dll by steping in to them.
Created a WCF service. Because I did not knew how to reference the service from vba I reference it from the class library. The problem is that I need to use variables such as DTE.ActiveDocument
and those variables are not serializable meaning I could not pass them to the wcf service.
Идея работы в C # очень хороша, но неспособность отладить и посмотреть, что происходит, делает ее несколько трудной. Возможно, мне придется перейти к моей более старой версии, где я создал свой код на C #, скомпилированный и декомпилированный в vba с отражателем.
EditЯ думаю, что я близок к получению решения. Я подумал, почему бы не создать макрос в консольном приложении? Я могу получить активный текст документа, но не могу его изменить.
EnvDTE80.DTE2 MyDte;
MyDte = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject( "VisualStudio.DTE.10.0" );
Console.WriteLine( "The Edition is " + MyDte.Edition );
Console.ReadLine( );
// write to the console the text that is selected. "sometimes it does not work don't know why"
Console.WriteLine(
MyDte.ActiveDocument.Selection.Text
);
Обратите внимание, что я добавил следующие ссылки, а также элементы, которые есть в макросах vba: