Я использую vb6 Interop Toolkit, чтобы позволить мне использовать пользовательский контроль vb.Net в устаревшем приложении vb6.Я хочу начать использовать некоторые функции в .Net 4, но когда я изменяю целевую платформу в проекте .Net usercontrol с .Net Framework 2 на .Net Framework 4, она работает нормально и работает нормально в моей разработке.но при развертывании приложения в тестовом окне приложение запускается при запуске с ошибкой «Недостаточно памяти».
Вот еще несколько деталей о том, как я экспериментирую ...
Используя VS 2010 с установленным инструментарием Interop 2.1, я создаю проект "VB6 Interop Usercontrol".Я добавляю кнопку в класс InteropUsercontrol.vb по умолчанию (именно так элемент управления будет виден в главном приложении).Я строю DLL.Я создаю проект vb6 (Project1) и ссылаюсь на компонент «InteropUsercontrolLibrary1» из диалогового окна vb6 Projects / Components / Controls.Я добавляю элемент управления в форму и компилирую Project1.exe.Затем я развертываю Project1.exe, InteropUsercontrolLibrary1.dll и Project1.exe.manifest (см. Ниже) для тестирования машин (XP и Windows7), на которых установлена Framework 4.0.Приложение работает только с этими тремя файлами.Если я повторяю тот же процесс, но изменяю целевую среду на 4.0, я получаю ошибку «Недостаточно памяти».
Вот мой манифест приложения:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="Test"
version="1.0.0.0"
/>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="InteropUserControlLibrary1"
version="1.0.0.0"
/>
</dependentAssembly>
</dependency>
</assembly>
Манифест компонента создается автоматическиInterop Toolkit предварительно собирал события и встраивал их в dll.Он работает с 2.0, поэтому я ожидаю, что с 4.0 тоже.
Независимо от того, что я делаю, я не могу заставить usercontrol, написанный на .net 4.0, запускаться в приложении vb6.Любые предложения будут оценены.
Джоэл