Excel Processus de clôture en VB.net

Je suis entrain de créer un fichier excel à l'aide de l'interopérabilité.excel et le processus n'est pas de clôture.
C'est le code que j'suis en train d'utiliser.

 Private Sub converToExcel(fileLoc As String, ds As DataSet)
    Dim xlApp As Excel.Application
    Dim xlWorkBook As Excel.Workbook
    Dim xlWorkBooks As Excel.Workbooks
    Dim xlWorkSheet As Excel.Worksheet
    Dim misValue As Object = System.Reflection.Missing.Value
    Dim i As Integer
    Dim j As Integer

    xlApp = New Excel.Application
    xlWorkBooks = xlApp.Workbooks
    xlWorkBook = xlWorkBooks.Add(misValue)
    xlWorkSheet = xlWorkBook.Sheets("sheet1")

    For i = 0 To ds.Tables(0).Rows.Count - 1
        For j = 0 To ds.Tables(0).Columns.Count - 1
            xlWorkSheet.Columns.NumberFormat = "@"
            xlWorkSheet.Cells(i + 1, j + 1) = String.Format("{0}", ds.Tables(0).Rows(i).Item(j).ToString())
        Next
    Next

    xlWorkSheet.SaveAs(fileLoc)
    xlWorkBook.Close()
    xlApp.Quit()

    releaseObject(xlWorkSheet)
    releaseObject(xlWorkBook)
    releaseObject(xlWorkBooks)
    releaseObject(xlApp)

End Sub
Private Sub releaseObject(ByVal obj As Object)
    Try
        System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
        obj = Nothing
    Catch ex As Exception
        obj = Nothing
    Finally
        GC.Collect()
    End Try
End Sub

Je pense que je vais rater un objet COM, mais ne peux pas l'air de trouver une solution.
Également comme une note, c'est en cours d'exécution sur une version 64 bits de Windows 8.
Toute aide serait super!
Grâce

Et vous êtes sûr que ce n'est pas une instance de gauche de précédents tests?
oui, j'ai vérifier le Gestionnaire des Tâches après chaque test et supprimer toutes les instances d'excel.
Je ne pense pas que ce soit la cause de votre problème, mais releaseObject ne peut pas faire tout ce que vous pensez que cela fonctionne. Puisque vous êtes de passage obj ByVal, le obj = Nothing n'a aucun effet sur la xlWorkSheet, xlWorkBook etc. les variables.
Changé releaseObject à byref au lieu de byval, même résultat.
L'ajout de xlWorkbooks.Fermer supprimer le processus? Si non, je dirais pas à pas dans le code, de voir lorsque les processus sont en cours de création, puis la détermination de ce qui est retiré vers la fin de votre Sous.

OriginalL'auteur jmcsmith | 2013-01-08