Hi,
Im trying to deploy a VB6 app with a VB.NET interop control using Reg Free Com.
Its a very simple test app, just trying to use a .NET button in a VB6 app. Everything works fine on Vista/7/2008 and the dev machine, however XP SP3 throws the generic error message: "This application has failed to start because the application configuration is incorrect".
The XP Machine has framework 4.0. Project was built on .net 2.0. Interop redist is installed.
.NET code:
Code:Public Const ClassId As String = "9cde58fb-d3a5-483b-82cb-0f86ad658e97" Public Const InterfaceId As String = "187216bf-4466-4e8b-aa9b-3122c35bfa09" Public Const EventsId As String = "6495a366-605c-4dc9-abb1-9e261d062ddb"
Control Manifest:Code:<ComClass(LDButton.ClassId, LDButton.InterfaceId, LDButton.EventsId)> _ Public Class LDButton Public Event ClickBtn() 'Please enter any new code here, below the Interop code Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MsgBox("Inner Click") RaiseEvent ClickBtn() End Sub End Class
Code:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!-- You don't need to worry about anything in this file unless you're using registration-free COM. There should be an appropriate <clrclass> section for every InteropUserControl defined in the project --> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity type="win32" name="MyButton" version="1.0.0.0" /> <clrClass clsid="{9cde58fb-d3a5-483b-82cb-0f86ad658e97}" progid="MyButton.LDButton" threadingModel="Both" name="MyButton.LDButton" > </clrClass> </assembly>
VB6 Code:
Code:Option Explicit Public WithEvents o As MyButton.LDButton Private Sub Form_Load() Set o = LDButton1 End Sub Private Sub o_ClickBtn() MsgBox "VB6 Event" End Sub
Project1.exe.manifest:
If I rename the manifest files, and register the dll using regasm, all works well on every OS, but I would really like to get the Reg-Free deployment going.Code:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity type="win32" name="Project1.exe" version="1.0.0.0" processorArchitecture="x86" /> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="MyButton" version="1.0.0.0" /> </dependentAssembly> </dependency> </assembly>
Any ideas?
Thanks,
Luke


Reply With Quote