Отладка сборки C# COM в VS2010
Я разрабатываю сборку C#, которая должна вызываться через COM из старого приложения vb6 (то есть "родного" win32, а не .net).
Я установил VS2010 Premium в W7 x64, и просто моя цель состоит в том, чтобы использовать Visual Studio для отладки кода C#...другая подсказка: сборка C# компилируется в "режиме x86" (.NET4), а затем dll регистрируется под COM+; ...через некоторое время я пытаюсь скомпилировать в режиме "любой процессор", без какого-либо результата...
таким образом, после:
1) запуск приложения win32
2) установка точки останова по методу "Foo" ,
3) прикрепление отладчика к процессу win32....
*** ничего ....***
Просто все работает хорошо но нет никакого способа активировать отладчик в VS
Есть предложения?
Заранее спасибо.
Флавио
Sergey Alexandrovich Kryukov
Прежде всего, почему COM? Чего вы этим добиваетесь? Есть какая-то конкретная причина использовать VB6? Что ж, избавьтесь от трупа как можно скорее.
А в чем проблема отладки? Сборка C# должна быть отлажена независимо от того, как она размещена. И обычно все очень просто.
—СА
2006 Flauzer
Привет, Сергей, моя цель-сделать ActiveX в .NET. Существует конкретная задача предоставить способ старому приложению "говорить"с другим приложением .NET, так что ActiveX-это простой обходной путь(и он был решен...)
Мое удивление заключается в том, что при вызове MsgBox( Obj.Foo()) VS выдает правильный результат, но я не могу активировать отладку и не могу понять, что не так !!!
Шаг 2) * * * Сделайте свой проект сборки стартовым проектом ("установите стартовый проект "в контексте...
Проект-это библиотека классов dll...у меня есть ошибка. В любом случае....
Я указал options2, то есть приложение win32..."аргументы командной строки". все работает хорошо (т. е. я вижу messagebox с результатом), но отладчик не запускается !. Ваше решение-это именно то, что я сделал, но оно не работает...O_O
Sergey Alexandrovich Kryukov
Видите ли, ваше "сделать ActiveX в .NET" не может быть конечной целью. Конечной целью может быть достижение какого-то конечного результата. ActiveX-это слишком устарело и некрасиво по отношению к .Нет.
Трудно сказать, что вы сделали не так. См. раздел Параметры отладки... Переустановите студию...
—СА
2006 Flauzer
Спасибо Сергею за ВАШ интерес и за ваш отклик.
Только последний комментарий, надеясь быть полезным для тех, у кого есть моя же проблема (из-за незнания всех перипетий VS .. может быть ..)
** Можно запустить отладчик с помощью меню" прикрепить к.. " и указать на правильный dllhost.exe (COM суррогат), связанный с ActiveX; ***
и не забудьте снять флажок оптимизация кода...
Однако для меня вопрос остается открытым, т. е. если кто-то попытается построить топор на C# и перейти к отладке с помощью simpke F5 нажмите кнопку .. все происходит не так быстро ...
Спасибо.
Флавио
Sergey Alexandrovich Kryukov
Видите ли, я просто не понимаю, что мешает вам отлаживать. Прикрепление к процессу, безусловно, работает, и я предложил в своем ответе более простой способ отладки, который должен сработать для вас. А вы пробовали?
—СА
2006 Flauzer
Да, Сергей...я пробовал его на 3 разных рабочих станциях.... :(
Может быть, это жучок?
Вот похожие вопросы: работает на net3. 5, а не на. Net4
http://stackoverflow.com/questions/6102882/debugging-net4-com-registered-assembly-from-win32-caller-in-visual-studio-2010. -- & gt;Вместо сбоя я не собираюсь отлаживать
Если вы согласны (но не стесняйтесь сказать "нет")...Я могу послать тебе свой дурацкий код...
Sergey Alexandrovich Kryukov
В ближайшее время, я не думаю, что у меня будет время для просмотра этого кода, так как он потребует много внимания, извините...
—СА