Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    [C#] Registrare componente

    Salve ragazzi, sto cercando di fare funzionare un mio progetto WordDocument. Dopo aver caricato il setup di installazione dell'applicazione, stavo cercando di aprire il documento word, ma questo non riesco a farlo, perchè viene segnalato l'errore che dice, l'assembly non è stato trovato o non è stato caricato. Ho pensato che per risolvere questo problema, possa essere utile registrare il componente, quindi con il comando regsvr32, ho provato a registrare la dll, ma anche qui viene segnalato un errore: file.dll è stato caricato, ma il punto di ingresso DllUnregisterServer non è stato trovato. Questo file non può essere registrato.
    Qualcuno saprebbe dirmi come caricare il componente, e quindi far funzionare la mia applicazione?

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Quale componente ti viene segnalato come mancante?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Quell'errore era dovuto dal fatto che sbagliavo il percorso del file, ora però ho un altro problema, se provo a registrare il componente con il comando regasm /codebase myfile.dll, segnala questo errore
    NO types were registered. Ho letto nella documentazione che bisogna dare all'assembly anche un nome valido, ho provato a farlo con il comando sn, ma una volta che provo nuovamente a registrare il componente, viene segnalato sempre lo stesso errore. Come posso risolvere?

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Non mi risulta che i componenti .NET vadano "registrati": puoi fare un deploy privato, copiando il file (DLL) nella cartella del programma, oppure installandolo nella GAC (Global Assembly Cache), a meno che non contengano oggetti COM da esportare, ma non sono certo che si tratti del tuo caso.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Il mio problema è che ho fatto una piccola applicazione WordDocument, e quando eseguo questa applicazione viene segnalato l'errore, che è impossibile caricare o trovare l'assembly, ecco perchè ho pensato che per risolvere il problema forse era necessario registrare il componente, comunque la mia applicazione è questa, ovvero crea un CommandBarButton per word, e poi alla suo click,
    aggiunge allo smart panel, un UserControl, ecco qui il codice
    codice:
    private void ThisDocument_Startup(object sender, System.EventArgs e)
    
    {
    
    Office.CommandBar newCommandBar = null;
    
    Office.CommandBarButton cmdButton = null;
    
    newCommandBar = this.CommandBars.Add("Command Bar Name", 
    Microsoft.Office.Core.MsoBarPosition.msoBarTop, false, true);
    
    cmdButton = 
    (Office.CommandBarButton)newCommandBar.Controls.Add(Microsoft.Office.Core.MsoControlType.msoControlButton, 
    System.Type.Missing, System.Type.Missing, System.Type.Missing, true);
    
    cmdButton.Tag = "ControlTag";
    
    cmdButton.Caption = "Show ActionPane";
    
    cmdButton.Click += new 
    Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(cmdButton_Click);
    
    cmdButton.DescriptionText = "Show ActionPane";
    
    
    }
    
    public void Action()
    
    {
    
    UserControl1 uc = new UserControl1();
    
    this.ActionsPane.Controls.Add(uc);
    
    
    }

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Nella macchina in cui installi il tuo programma sono presenti i PIAs di Office, cioè gli assembly che contengono i "wrapper" degli oggetti COM per l'automazione di Office?

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Ok, ma secondo te da cosa può dipendere l'errore che viene segnalato durante l'avvio del mio programma, ovvero che l'assembly non è stato caricato o non viene trovato?

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da GiulioCesare
    Ok, ma secondo te da cosa può dipendere l'errore che viene segnalato durante l'avvio del mio programma, ovvero che l'assembly non è stato caricato o non viene trovato?
    Credo dipenda da quello che riporta l'errore stesso: un assembly non caricato o non trovato.

    Non conoscendo nulla del tuo sistema, senza ulteriori indicazioni, non posso dirti certo qual è il problema preciso.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    La mia applicazione è molto piccola, ecco qua il codice
    codice:
    Possibile che ci siano tutti questi problemi? La mia è una piccola 
    applicazione, che crea un CommandBarButton per word, e poi alla suo click, 
    aggiunge allo smart panel, un UserControl, ecco qui il codice comunque. 
    private void ThisDocument_Startup(object sender, System.EventArgs e) 
    
    { 
    Office.CommandBar newCommandBar  null; 
    Office.CommandBarButton cmdButton  null; 
    
    newCommandBar  this.CommandBars.Add("Command Bar Name", 
    Microsoft.Office.Core.MsoBarPosition.msoBarTop, false, true); 
    
    
    cmdButton   
    (Office.CommandBarButton)newCommandBar.Controls.Add(Microsoft.Office.Core.M_soControlType.msoControlButton, 
    System.Type.Missing, System.Type.Missing, System.Type.Missing, true); 
    cmdButton.Tag  "ControlTag"; 
    cmdButton.Caption  "Show ActionPane"; 
    cmdButton.Click + new 
    Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(cmdButton_C_lick); 
    
    
    cmdButton.DescriptionText  "Show ActionPane"; 
    } 
    
    
    public void Action() 
    { 
    UserControl1 uc  new UserControl1(); 
    this.ActionsPane.Controls.Add(uc); 
    }

  10. #10
    Scusa non mi ero accorto di aver postato il codice, già nel post precedente

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.