Debuguj niestandardowy plik DLL, do którego odwołuje się makro wizualne
Wcześniej pytałem:Dodaj dll do wizualnych makr studia
pomysł tworzenia makr w moim języku (C #) ułatwia tworzenie makr.Problem polega na tym, że nie mogę debugować biblioteki DLL
Aby rozwiązać problem, próbowałem:
UmieściłemmyClassLibrary.pdb
obokmyClassLibrary.dll
mając nadzieję, że będę mógł debugować metody w dll, wchodząc do nich.
Utworzono usługę WCF. Ponieważ nie wiedziałem, jak odwołać się do usługi z vba, odwołuję się do niej z biblioteki klas. Problem polega na tym, że muszę używać zmiennych, takich jakDTE.ActiveDocument
a te zmienne nie są możliwe do serializacji, co oznacza, że nie mogę przekazać ich do usługi wcf.
idea pracy w C # jest bardzo miła, ale brak możliwości debugowania i sprawdzania, co się dzieje, sprawia, że jest to trochę trudne. Być może będę musiał przejść do mojej starszej opcji, gdzie utworzyłem mój kod na C # skompilowany, a następnie dekompilowałem do vba z reflektorem.
EdytowaćMyślę, że jestem blisko uzyskania rozwiązania. Pomyślałem, dlaczego nie utworzyć makra w aplikacji konsoli? Jestem w stanie uzyskać aktywny tekst dokumentu, ale nie mogę go zmienić.
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
);
Uwaga: dodałem następujące odnośniki oraz elementy, które mają makra vba: