Excel对象在应用程序发布后生成错误

我的VB.NET Windows窗体应用程序正在将数据写入Excel文件。 它在开发环境中没有任何错误。 excel文件是用数据创build的。

但是当应用程序被部署/发布。 它在xlWorkBook.SaveAs上给出错误:“对象引用未设置为对象的实例”

错误令人困惑。 这是一个许可问题吗? 任何帮助。

以下是代码:

Dim xlApp As Excel.Application = New Excel.Application xlApp.SheetsInNewWorkbook = 1 Dim xlWorkBook As Excel.Workbook = xlApp.Workbooks.Add Dim xlWorkSheet As Excel.Worksheet = CType(xlWorkBook.Worksheets.Add(), Excel.Worksheet) xlWorkSheet.Name = "Sample1" xlWorkSheet.Cells(1, 1) = "TestData1" xlWorkSheet.Cells(1, 2) = "TestData2" xlApp.DisplayAlerts = False xlWorkBook.SaveAs(gExcelFileName, Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, Type.Missing, Type.Missing, _ Excel.XlSaveAsAccessMode.xlNoChange, Excel.XlSaveConflictResolution.xlLocalSessionChanges) 

我发现这个问题的解决scheme是将variables“gExcelFileName”中的文件夹位置更改为安装它的机器上的本地文件夹。 它现在有效。 我认为这是一个许可问题。

你有没有用excel interop dll发布你的应用程序? 不同版本的excel可能有不同的参数,如果你不想用excel dll发布你的应用程序,请尝试使用命名参数:

 xlWorkBook.SaveAs(FileName:=gExcelFileName, FileFormat:=Excel.XlFileFormat.xlWorkbookDefault, AccessMode:=Excel.XlSaveAsAccessMode.xlNoChange, ConflictResolution:=Excel.XlSaveConflictResolution.xlLocalSessionChanges)