Mi aplicación winform no funciona en la pc de otros sin vs 2010 instalado

Tal como dije, mi aplicación winform funciona correctamente en computadoras con VS instalado, pero en otras computadoras, fallará debido a un FileNotFound Exception. solía

using Application = Microsoft.Office.Interop.Excel.Application;

en mi código fuente para generar un archivo de Excel, y el problema ocurre tan pronto como se llama a la función relacionada con Excel. Pero no sé a qué se refiere exactamente. ¿Tengo que conseguir algo? .dll incluido junto con el archivo .exe? Y qué DLL ¿es eso?

A continuación se muestran parte de mis códigos:

  private void FileExport(object objTable)
    {
        StartWaiting();
        string[,] table = null;
        try
        {
            table = (string[,])objTable;
        }
        catch (Exception ex)
        {
            ShowStatus(ex.Message, StatusType.Warning);
        }
        if (table == null)
        {
            return;
        }
        Application excelApp = new Application
        {
            DisplayAlerts = false
        };
        Workbooks workbooks = excelApp.Workbooks;
        Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);
        Worksheet worksheet = (Worksheet)workbook.Worksheets[1];
        worksheet.Name = "TABLE";
        for (int i = 0; i < table.GetLength(0); i++)
        {
            for (int j = 0; j < table.GetLength(1); j++)
            {
                worksheet.Cells[i + 1, j + 1] = table[i, j];
            }
        }
        Range range = excelApp.Range["A1", "H1"];
        range.Merge();
        range.Font.Bold = true;
        range.Font.Size = 15;
        range.RowHeight = 50;
        range.EntireRow.AutoFit();
        range = excelApp.Range["A2", "H8"];
        range.Font.Size = 11;
        range = excelApp.Range["A1", "H8"];
        range.NumberFormatLocal = "@";
        range.RowHeight = 300;
        range.ColumnWidth = 50;
        range.HorizontalAlignment = XlHAlign.xlHAlignCenter;
        range.VerticalAlignment = XlVAlign.xlVAlignCenter;
        range.EntireRow.AutoFit();
        range.EntireColumn.AutoFit();
        worksheet.UsedRange.Borders.LineStyle = 1;
        Invoke(new MainThreadInvokerDelegate(SaveAs), new object[] { worksheet, workbook, excelApp }
            );
        EndWaiting();
    }

`

preguntado el 01 de julio de 12 a las 10:07

cual es la excepcion Creo que sería útil si pudiera publicar el seguimiento de la pila:

No estoy seguro de si está relacionado con que VS no esté instalado. Debería ser principalmente porque la versión correcta de Excel no está en el gac -

Creo que te faltan algunas Dll(s), prueba esta: microsoft.office.interop.excel.dll -

Incluya siempre el mensaje de error y los detalles. -

Sus usuarios probablemente no tengan Excel instalado en su máquina. -

2 Respuestas

Creo que su programa está buscando una copia de Microsoft.Office.Interop.Excel.dll y no lo encuentra.

Para esto, vaya al Explorador de soluciones, asegúrese de que esté seleccionado "Mostrar todos los archivos", luego abra su lista de referencias.

Seleccione su referencia a Microsoft.Office.Interop.Excel.dll y presione F4 para abrir el menú Propiedades. Allí, cambie Copiar local a True, y el dll al que se hace referencia ahora debe copiarse en su directorio de salida, lo que significa que se encontrará el archivo y el programa debería funcionar.

Respondido 01 Jul 12, 10:07

Nota: eso aún requiere que Excel esté instalado en el sistema del usuario. - usuario743382

Como otros mencionaron, probablemente olvidó implementar Microsoft.Office.Interop.Excel.dll junto con sus archivos de aplicación. Puede incluir estos archivos cuando implemente su aplicación o usar un instalador de Windows que puede hacer esto automáticamente por usted. Un instalador se encargaría de implementar los archivos de su proyecto y todas sus dependencias. En esta asignatura MSDN dice:

El archivo de Windows Installer (.msi) resultante contiene la aplicación, los archivos dependientes, información sobre la aplicación, como entradas de registro e instrucciones para la instalación.

En una nota al margen: debe asegurarse de que Excel esté instalado en la otra máquina; de lo contrario, su aplicación no se comportará de la manera que espera que lo haga.

Respondido 02 ago 12, 11:08

¿Quiere decir que mis usuarios tienen que instalar Excel de todos modos incluso si he implementado la DLL junto con la aplicación? - alas

@wings Sí, Excel debe estar presente en la máquina :) - GETah

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.