Namelessx Inserito: 15 febbraio 2008 Segnala Share Inserito: 15 febbraio 2008 Salve a tutti, sono nuovo di questo forum e vorrei esporre un problema che non riesco proprio a capire...Lavoro su ambiente Rockwell automation per plc Allen Bradley e RSViewStudio come ambiente di sviluppo SCADA.Ho creato per il mio SCADA un ActiveX in Visual C# ( una DLL in cui ho inserito uno UserControl con visibilità COM basato sul Framework 3.5 )Registro la libreria e riesco ad importarla senza problemi nel mio SCADA da RSViewStudio...Creo il file ControlloUtenteDll.cab che contiene ControlloUtente.dll e ControlloUtente.inf e lo posiziono sul server....Provo ad utilizzare il tutto e funziona alla perfezione! salvo, chiudo, riapro... e mi appare l'errore:---- Unable to load ActiveX control for displaycause: CAB file missing on the server http://localhost/RSViewActiveXControlSetup/mscoreedll.cab---- mscoree.dll dovrebbe (da quello che ho letto sul web) essere una libreria .NET che è presente in /system32/ della macchina in uso... non so proprio più cosa fare... spero che qualcuno mi possa aiutare!Grazie!Enzo Link al commento Condividi su altri siti More sharing options...
GALMA Inserita: 16 febbraio 2008 Segnala Share Inserita: 16 febbraio 2008 Ciao,tempo fa ho fatto lo stesso con RSView32. Il mio cliente aveva bisogno di diversi motori di ricetta personalizzati. Ti posso dire che sul RSView32 anche l'ultima versione, non supporta ActiveX sviluppati in .NET, ho dovuto svilupparlo in VB6 in formato ocx.Solo così ha funzionato a dovere.Ora penso, spero, la cosa sia stata sistemata per RSView Studio, anche perchè sarebbe assurdo che non si possa inserire un activex sviluppato in .net.Se non riesci a risolvere ti consiglio di chiamare il Sig. Carboni di rockwell che è il capotecnico per la famiglia View di Rockwell italia.In bocca al lupo, e fammi sapere. Sono curioso. Link al commento Condividi su altri siti More sharing options...
Namelessx Inserita: 19 febbraio 2008 Autore Segnala Share Inserita: 19 febbraio 2008 Ho chiamato Rockwell e neanche loro sono riusciti a darmi una risposta... il problema persiste... Link al commento Condividi su altri siti More sharing options...
GALMA Inserita: 19 febbraio 2008 Segnala Share Inserita: 19 febbraio 2008 Domanda stupida....ma il file mscoree.dll è presente sulla macchina di destinazione??E su che macchina è impostato il factorytalk directory? Link al commento Condividi su altri siti More sharing options...
Namelessx Inserita: 19 febbraio 2008 Autore Segnala Share Inserita: 19 febbraio 2008 si il file è presente nella cartella del framework...Ho provato ad installare l'IIS (Internet Information Services), ho creato la cartella RSViewActiveXControlSetup e dentro ho piazzato il file ControlloUtenteDll.cab... adesso all'indirizzo http://localhost/RSViewActiveXControlSetup/mscoreedll.cab trovo il file cab.RSView non so per quale motivo l'ha visto una sola volta...ed ora ha ripreso a dire che non trova questo file cab...Come dovrei impostare il FactoryTalk directory?Grazie per l'aiuto! Link al commento Condividi su altri siti More sharing options...
Namelessx Inserita: 19 febbraio 2008 Autore Segnala Share Inserita: 19 febbraio 2008 scusa... ho sbagliato.... nella cartella RSViewActiveXControlSetup e dentro ho messo il file mscoreeDll.cab... Link al commento Condividi su altri siti More sharing options...
Emanuele Manca Inserita: 21 gennaio 2018 Segnala Share Inserita: 21 gennaio 2018 Salve a Tutti, Io ho risolto. Il problema sta io una sottochiave del registro relativo all'Activex che si vuole utilizzare. In InprocServer32 del vostro ActiveX dovete modificare il valore "Predefinito" da mscoree.dll in C:\Windows\SysWow64\mscoree.dll. Per cercarlo sul registro dovete conoscere la GUID del vostro Activex, per esempio nel mio caso è "6E325D2A-0E6A-4471-A8D3-F923BF102B85". Oppure se non volete modificarlo a mano, nel vostro codice C# dovete aggiungere alla classe questa funzione: <ComRegisterFunction()> Private Shared Sub ComRegister(ByVal t As Type) Dim keyName As String = "CLSID\\" & t.GUID.ToString("B") Dim key As RegistryKey = Registry.ClassesRoot.OpenSubKey(keyName, True) key.CreateSubKey("Control").Close() Dim subkey As RegistryKey = key.CreateSubKey("MiscStatus") subkey.SetValue("", "131201") subkey = key.CreateSubKey("TypeLib") Dim libid As Guid = Marshal.GetTypeLibGuidForAssembly(t.Assembly) subkey.SetValue("", libid.ToString("B")) subkey = key.CreateSubKey("Version") Dim ver As Version = t.Assembly.GetName().Version Dim version As String = String.Format("{0}.{1}", ver.Major, ver.Minor) If version = "0.0" Then version = "1.0" subkey.SetValue("", version) subkey = key.CreateSubKey("InprocServer32") subkey.SetValue("", Environment.SystemDirectory + "\" + "mscoree.dll") End Sub Questa funzione viene richiamata quando andate a registrare l'ActiveX sul registro con regasm. Io L'activeX lo registro in questo modo: regasm /codebase /tlb nome_dll Spero di essere stato di aiuto Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 21 gennaio 2018 Segnala Share Inserita: 21 gennaio 2018 Occhio alle date, la discussione è ferma da quasi 10 anni! Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati