'Interop.Word' -- Merge Word

martedì 12 settembre 2006 - 12.14

Alus Profilo | Newbie

Ciao a tutti, sto realizzando un programma in vb.net e
devo effettuare un merge tra dei dati raccolti in un file txt e un documento word(.dot) che contiene dei MetaField(o è meglio utilizzare dei BookMark?),
ma ho questo errore:
System.IO.FileNotFoundException: Impossibile caricare il file o l'assembly 'Interop.Word, Version=8.3.0.0, Culture=neutral, PublicKeyToken=null' o una delle relative dipendenze.

utilizzo il word.application, word.document e word.mailMerge.

Mi potete aiutare?


Ciao

Brainkiller Profilo | Guru

>System.IO.FileNotFoundException: Impossibile caricare il file
>o l'assembly 'Interop.Word, Version=8.3.0.0, Culture=neutral,
>PublicKeyToken=null' o una delle relative dipendenze.

Beh mi sembra evidente che ti manca un Assembly di interoperabilità.
Come referenzi i componenti di Office dentro .NET, referenzi direttamente il componente COM oppure usi i PIA ?
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

Alus Profilo | Newbie

>Beh mi sembra evidente che ti manca un Assembly di interoperabilità.
>Come referenzi i componenti di Office dentro .NET, referenzi
>direttamente il componente COM oppure usi i PIA ?

Lo aggiungo direttamente da COM.....
scusa la mia ignoranza,ma non si potrebe trattare di un problema simile all'Interop.Scripting?
In quel caso mi hai detto di usare,con successo,l'IO.Directory.Non esiste un metodo simile .NET?

Se può aiutarti,ho verificato il più possibile i due pc e l'unica differenza sta nella lingua di word.

Ciao

Brainkiller Profilo | Guru

>Lo aggiungo direttamente da COM.....
>scusa la mia ignoranza,ma non si potrebe trattare di un problema
>simile all'Interop.Scripting?
>In quel caso mi hai detto di usare,con successo,l'IO.Directory.Non
>esiste un metodo simile .NET?

Esatto, ma per lavorare con i prodotti Office da .NET bisogna per forza o referenziare i componenti COM oppure usare i PIAs di interoperabilità. Qui manca un file, dovresti cercarlo sul tuo disco se è presente. Forse l'hai cancellato ?

Quando referenzi un COM dovrebbe crearti auomaticamente una proxy class (appunto chiamata Interop.Word).
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

Alus Profilo | Newbie

>Esatto, ma per lavorare con i prodotti Office da .NET bisogna
>per forza o referenziare i componenti COM oppure usare i PIAs
>di interoperabilità. Qui manca un file, dovresti cercarlo sul
>tuo disco se è presente. Forse l'hai cancellato ?
>
>Quando referenzi un COM dovrebbe crearti auomaticamente una proxy
>class (appunto chiamata Interop.Word).

Quindi mi stai dicendo che il metodo è quello giusto,non ce ne è uno strettamente di .NET
Referenziando il componente,mi crea l'Interopt.Word.Il file c'è....forse devo settare qualcosa del tipo "registra"?

Ciao

Brainkiller Profilo | Guru

>Quindi mi stai dicendo che il metodo è quello giusto,non ce ne
>è uno strettamente di .NET

Non ce n'è uno nativo di .NET, devi per forza utilizzare gli oggetti che ti mette a disposizione Office. Oppure l'alternativa è creare file Office in formato XML che aderiscano però alle specifiche rilasciate da Microsoft.

>Referenziando il componente,mi crea l'Interopt.Word.Il file c'è....forse
>devo settare qualcosa del tipo "registra"?

L'altro requisito è che sul PC di destinazione ci sia installato Word, magari la stessa versione che hai sul PC di sviluppo.

Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

Alus Profilo | Newbie

>Non ce n'è uno nativo di .NET, devi per forza utilizzare gli
>oggetti che ti mette a disposizione Office. Oppure l'alternativa
>è creare file Office in formato XML che aderiscano però alle
>specifiche rilasciate da Microsoft.
>
>>Referenziando il componente,mi crea l'Interopt.Word.Il file c'è....forse
>>devo settare qualcosa del tipo "registra"?
>
>L'altro requisito è che sul PC di destinazione ci sia installato
>Word, magari la stessa versione che hai sul PC di sviluppo.

C'è la stessa versiona,l'unica differenza è che uno è inglese e l'altro italiano

Brainkiller Profilo | Guru

>C'è la stessa versiona,l'unica differenza è che uno è inglese
>e l'altro italiano

Senti, fai così, se ti è possibile, zippa tutto l'eseguibile + le dll e allegalo al prossimo Post. Mi dici che versione di Word usi e lo provo su un PC di test.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

Alus Profilo | Newbie

L'msi è di 6,60MB già zippato e non me lo fa allegare.....

Ciao
Danilo

Brainkiller Profilo | Guru

>L'msi è di 6,60MB già zippato e non me lo fa allegare.....

In effetti è un po' tanto. Per la miseria ma cosa ci hai messo dentro in 6 Mega ???
Non hai un FTP o un sito dove caricarlo ?
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

Alus Profilo | Newbie

Dovrebbe esserti arrivata una mail all'indirizzo david@dotnethell.it

ho utilizzato yousendit.

questo il link diretto
http://download.yousendit.com/473E111428731983

Ciao
Danilo

Brainkiller Profilo | Guru

>Dovrebbe esserti arrivata una mail all'indirizzo david@dotnethell.it
>ho utilizzato yousendit.

Mi sa che nel tuo progetto hai non pochi casini. Dopo averlo installato in Menù Programmi mi trovo oltre al collegamento per far partire il programma anche altri file tipo MSO.DLL ecc.ecc.

Quando lo faccio partitre mi dice che non trova i modelli da stampare.

E per finire dopo che mi ha copiato su disco oltre 6 mega di roba, il file interop.word.dll non c'è.

ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

Alus Profilo | Newbie

Mi si erano un po scombinate le dll, tra metti e togli.....

Cmq prima non le vedevi perchè veniva generate come nascoste....

Ecco qui ora la nuova versione.

http://download.yousendit.com/9E66460054753928


Ciao
Danilo

Brainkiller Profilo | Guru

>Mi si erano un po scombinate le dll, tra metti e togli.....
>Cmq prima non le vedevi perchè veniva generate come nascoste....

Ora mi dice sempre che non trova modelli da stampare, c'è il file Interop.Word.dll ma perchè è nella cartella System ???
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

Alus Profilo | Newbie

>Ora mi dice sempre che non trova modelli da stampare, c'è il
>file Interop.Word.dll ma perchè è nella cartella System ???

Mah, sinceramente non so perchè a te non trova i modelli...a me su altri client,qulla parte funziona.Proprio nel load controlla e crea il path "C:\Programmi\AutoCapital\Document\Modelli\" con i relativi modelli word.....


L'Interopt.Word lo faccio creare io nella cartella System...Li dovrebbero esserci tutte le dll.....o magari è proprio qst l'errore?Devono stare in una cartella prestabilita?

Ciao
Danilo

Brainkiller Profilo | Guru

>L'Interopt.Word lo faccio creare io nella cartella System...Li
>dovrebbero esserci tutte le dll.....o magari è proprio qst l'errore?Devono
>stare in una cartella prestabilita?

Direi che devono stare dove c'è anche l'eseguibile.

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

Alus Profilo | Newbie

>Direi che devono stare dove c'è anche l'eseguibile.

Posso spostare l'eseguibile o dato che è una sotto directory potrebbe causare problemi?
Ciao
Danilo

Brainkiller Profilo | Guru

>Posso spostare l'eseguibile o dato che è una sotto directory
>potrebbe causare problemi?

L'importante è che DLL e eseguibile stiano assieme nella stessa cartella.

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

Alus Profilo | Newbie


>L'importante è che DLL e eseguibile stiano assieme nella stessa
>cartella.

Perfetto!
Ho allineato un po di file,ed ora funziona.
Ora però, come riferimenti inutilizzati,ma segnala l'Interopt.VBIDE e Microsoft.Office.Core.
Queste sono state incluse direttamente quando ho aggiunto la l'Interop.Word.

Posso eliminarle?
Se no,perchè mi dice che sono inutilizzate?

Ed ultimo problema....MA NON MI ODIARE,per la stampa devo settare qualcosa in particolare?

Fin'ora ho settato il PrintFileName e il documentName.
Che mi manca di necessario??

Mi stampa una pagina vuota.....

Grazie....
Ciao
Danilo

Brainkiller Profilo | Guru

>Ho allineato un po di file,ed ora funziona.
>Ora però, come riferimenti inutilizzati,ma segnala l'Interopt.VBIDE
>e Microsoft.Office.Core.
>Posso eliminarle?

Lasciale referenziate.

>Ed ultimo problema....MA NON MI ODIARE,per la stampa devo settare
>qualcosa in particolare?

A sto punto ti consiglierei di studiarti un pochino meglio .NET, visto che se mi hai messo le DLL in una sottocartella System.... , non mi sembra che ci siamo come conoscenza di base.

Guardati nell'SDK sulle classi di Printing ci sono vari esempi indicativi su come fare per stampare da .NET.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5