Newsgroup: it.comp.lang.visual-basic
Titolo: visual basic .net + excel+project redistribution

ciao a tutti,
ho un problema nel distribuire un'applicazione in visual basic .net che
usa un'oggetto excel.
In locale non ho problemi, ma se provo ad installarlo su altre macchine
non funziona.
Il pacchetto di installazione include excel.exe, MS0.dll, ma non so
come usare questi piuttosto che la versione installata sul pc. sapete
darmi un aiuto?
l'errore che mi torna e' questo:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.Runtime.InteropServices.COMException (0x80028018): Formato
vecchio o libreria di tipo non valido.
   at Microsoft.VisualBasic.CompilerServices.LateBinding.LateGet(Object
o, Type objType, String name, Object[] args, String[] paramnames,
Boolean[] CopyBack)
   at pumadotnet.frmverifica.btnexcel_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons
button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32
msg, IntPtr wparam, IntPtr lparam)
************* Loaded Assemblies **************
mscorlib
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase:
file:///c:/windows/
microsoft.net/framework/v1.1.4322/mscorlib.dll
----------------------------------------
pumadotnet
    Assembly Version: 1.0.2281.30902
    Win32 Version: 1.0.2281.30902
    CodeBase: file:///C:/Programmi/Puma/pumadotnet.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase:
file:///c:/windows/assembly/gac/system.windows.forms/1.0.5000.0__b77a5c561934e089/system.windows.forms.dll
----------------------------------------
System
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase:
file:///c:/windows/assembly/gac/system/1.0.5000.0__b77a5c561934e089/system.dll
----------------------------------------
System.Drawing
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase:
file:///c:/windows/assembly/gac/system.drawing/1.0.5000.0__b03f5f7f11d50a3a/system.drawing.dll
----------------------------------------
System.Data
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase:
file:///c:/windows/assembly/gac/system.data/1.0.5000.0__b77a5c561934e089/system.data.dll
----------------------------------------
System.Xml
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase:
file:///c:/windows/assembly/gac/system.xml/1.0.5000.0__b77a5c561934e089/system.xml.dll
----------------------------------------
Accessibility
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase:
file:///c:/windows/assembly/gac/accessibility/1.0.5000.0__b03f5f7f11d50a3a/accessibility.dll
----------------------------------------
Microsoft.VisualBasic
    Assembly Version: 7.0.5000.0
    Win32 Version: 7.10.3052.4
    CodeBase:
file:///c:/windows/assembly/gac/microsoft.visualbasic/7.0.5000.0__b03f5f7f11d50a3a/microsoft.visualbasic.dll
----------------------------------------

 darmi un aiuto?
cosa? excel non si redistruibuisce ( e comunque i due file inclusi da
soli non basterebbero).
l'utente deve mettere mani al portafogli e comprarsi office.
-- 
caio, hal

ciao Hal,
grazie della risposta..in effetti avevo pensato ai problemi di licenza
:S
Comunque ha office installato..solo che e' una vesione diversa dalla
mia.
Puo' essere che esista un modo per capire la versione installata e di
conseguenza usare le librerie o il controllo giusto (sto andando per
associazioni di idee) o chesso' scrivere il file excel come file di
testo e farlo aprire cercando l'eseguibile con un comando batch...
mha sono nel marasma...
a dopo
cap

 ha scritto nel messaggio 
news:1144118794....@u72g2000cwu.googlegroups.com...


ciao elef,
posto qui il codice che uso (congruente con i tuoi suggerimenti).
togliendo i riferimenti nel pacchetto di installazione "pare" che
funzioni, su 4 computer con diverse versioni di office funziona.
manca ovviamente la macchina su cui deve realmente girare l'applicativo
:D. bom ti tengo aggiornato..ancora grazie.
cap
p.s.:elef sta per elefante??? come un personaggio dei libri di dazieri
conosci?
 Private Sub btnexcel_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnexcel.Click
        Dim oExcel As Object
        Dim oBook As Object
        Dim oSheet As Object
        Dim oChart As Object
        Dim cellAdress As String
        Dim nomeFile As String
        Dim i, j, cnt As Long
        oExcel = CreateObject("Excel.Application")
        oExcel.Visible = True
        nomeFile = pathpuma & "\db\Report.xlt"
        oBook = oExcel.Workbooks.Open(FileName:=nomeFile)
        oSheet = oBook.worksheets(1)
        oSheet.Range("B5").Value = Qaria
        oSheet.Range("B6").Value = Qfumi
        oSheet.Range("B7").Value = Nt
        oSheet.Range("B8").Value = Drecuperatore
        oSheet.Range("B9").Value = De
        oSheet.Range("B10").Value = H
        For i = 0 To Nz - 1
            oSheet.Range("B" & 13 + i).Value = i * H / Nz
            oSheet.Range("C" & 13 + i).Value = Temp(1, i)
            oSheet.Range("D" & 13 + i).Value = Temp(3, i)
            oSheet.Range("E" & 13 + i).Value = Temp(2, i)
        Next i
        oBook.Sheets("Grafico").Select()
        oChart = oBook.ActiveChart
        'oChart.ChartType = xlXYScatter
        oChart.SetSourceData(Source:=oSheet.Range("B12:E" & (13 + Nz)),
PlotBy:="Dati!B13:E" & 13 + Nz)
       Exit Sub
ErrHandler:
        If Not oExcel Is Nothing Then
            oExcel.Visible = False
            oExcel.Quit(False)
            oExcel = Nothing
        End If
        Err.Raise(Err.Number, Err.Source, Err.Description)
    End Sub

 Err.Raise ...
Exit Sub e' di troppo (Excel non viene chiuso se va tutto a buon fine).
Puoi eliminarlo e modificare la riga "Err.Raise ..." in:
If Err.Number <> 0 Then Err.Raise ...
hth,
Lokar 

grazie lokar,
modificato come mi hai segnalato.
comunque sembra che sia riuscito a risolvere il problema con i
suggerimenti di elef e con queste info:
http://support.microsoft.com/?id=320369
a dopo
cap

 ha scritto nel messaggio 
news:1144160784.6...@u72g2000cwu.googlegroups.com...
