Depurar a DLL personalizada que está sendo referenciada na macro visual studio
Eu previamente perguntei:Adicionar referência dll às macros do Visual Studio
A idéia de criar as macros em minha linguagem (C #) facilita a criação das macros.O problema é que eu não posso depurar a dll
Para resolver o problema, tentei:
eu coloqueimyClassLibrary.pdb
ao lado demyClassLibrary.dll
Esperando que eu seja capaz de depurar os métodos na dll, entrando neles.
Criado um serviço WCF. Porque eu não sabia como referenciar o serviço de vba, referenciei-o da biblioteca de classes. O problema é que eu preciso usar variáveis comoDTE.ActiveDocument
e essas variáveis não são serializáveis, o que significa que não pude passá-las para o serviço wcf.
A idéia de trabalhar em C # é muito boa, mas não ser capaz de depurar e ver o que está acontecendo dificulta um pouco. Eu poderia ter que ir para a minha opção mais antiga, onde eu criei o meu código em c # compilado, em seguida, decompiled em vba com reflector.
EditarEu acho que estou perto de conseguir uma solução. Eu pensei porque não criar a macro em um aplicativo de console? Consigo obter o texto do documento ativo, mas não consigo alterá-lo.
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
);
note que adicionei as seguintes referências mais as onces que as macros vba possuem: