c # – Microsoft Access ne s'installe pas correctement dans Windows Server 2012 R2 – Les meilleures astuces pour son serveur
Author: Titanfall —
Short summary: J'ai un code d'automatisation C # qui extrait des données de Microsoft Excel. Lorsque j'essaie d'exécuter ce code sur une machine virtuelle (Windows Server 2012 R2), le message d'erreur ci-dessous s'affiche. & # 39; System.Runtime.InteropServices.COMException (0x80040154): Récupération Fabrique de classe COM pour composant avec CLSID 00024500-0000-0000-C000-000000000046 a échoué pour l'une des raisons suivantes erreur: 80040154 […]
Quick overview
- Site
- Tutos GameServer
- Canonical URL
- https://tutos-gameserver.fr/2019/07/07/c-microsoft-access-ne-sinstalle-pas-correctement-dans-windows-server-2012-r2-les-meilleures-astuces-pour-son-serveur/
- LLM HTML version
- https://tutos-gameserver.fr/2019/07/07/c-microsoft-access-ne-sinstalle-pas-correctement-dans-windows-server-2012-r2-les-meilleures-astuces-pour-son-serveur/llm
- LLM JSON version
- https://tutos-gameserver.fr/2019/07/07/c-microsoft-access-ne-sinstalle-pas-correctement-dans-windows-server-2012-r2-les-meilleures-astuces-pour-son-serveur/llm.json
- Manifest
- https://tutos-gameserver.fr/llm-endpoints-manifest.json
- Estimated reading time
- 4 minutes (183 seconds)
- Word count
- 610
Key points
- J'ai un code d'automatisation C # qui extrait des données de Microsoft Excel.
- Lorsque j'essaie d'exécuter ce code sur une machine virtuelle (Windows Server 2012 R2), le message d'erreur ci-dessous s'affiche.
- & # 39; System.Runtime.InteropServices.COMException (0x80040154): Récupération Fabrique de classe COM pour composant avec CLSID 00024500-0000-0000-C000-000000000046 a échoué pour l'une des raisons suivantes erreur: 80040154 Classe non enregistrée (exception de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
- & # 39; J'ai trouvé que Microsoft Access n'est pas installé et j'ai essayé d'installer le même (Microsoft Access 2013 Runtime), l'installation est réussie.
Primary visual
Structured content
J'ai un code d'automatisation C # qui extrait des données de Microsoft Excel. Lorsque j'essaie d'exécuter ce code sur une machine virtuelle (Windows Server 2012 R2), le message d'erreur ci-dessous s'affiche.
& # 39; System.Runtime.InteropServices.COMException (0x80040154): Récupération Fabrique de classe COM pour composant avec CLSID 00024500-0000-0000-C000-000000000046 a échoué pour l'une des raisons suivantes erreur: 80040154 Classe non enregistrée (exception de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). & # 39;
J'ai trouvé que Microsoft Access n'est pas installé et j'ai essayé d'installer le même (Microsoft Access 2013 Runtime), l'installation est réussie. Mais étrangement, il n'est pas complètement installé. en C: Fichiers de programme (x86) Microsoft Office Office15 Je ne vois que quelques DLL (dll Microsoft.Office.Interop.Access manquantes dans les références de projet) par rapport aux DLL de mon système local. De plus, il n'y a pas d'enregistrement dans le registre avec la clé 00024500-0000-0000-C000-000000000046 Code pour obtenir des données à partir d'Excel dictionnaire statique public GetExcelData (strict testDatapath, strict testDataSheet, strict test caseID) { testCaseValues.Clear (); Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application (); Classeur = null; Gamme gamme = zéro; bool arrayFlag = false; int iVal = 0; ArrayList excelValues = new ArrayList (); ArrayList header = new ArrayList (); essayer { app.Visible = false; app.ScreenUpdating = false; app.DisplayAlerts = false; bok = app.Workbooks.Open (testDatapath); Console.WriteLine ("récupère Excel à partir de" + testDatapath); foreach (Feuilles de travail en feuilles. Feuilles de travail) { if (sheet.Name.Equals (testDataSheet)) { Console.WriteLine ("La fiche de test est" + testDataSheet); // obtenir une sélection pour travailler avec range = sheet.get_Range ("A1", Missing.Value); // place la fin des valeurs à droite (s'arrête à la première cellule vide) range = range.get_End (XlDirection.xlToRight); // termine les valeurs vers le bas, voir dans la dernière colonne (s'arrête à la première cellule vide) range = range.get_End (XlDirection.xlDown); // récupère l'adresse du bas, cellule de droite strict downAddress = range.get_Address (false, false, XlReferenceStyle.xlA1, Type.Missing, Type.Missing); // Obtenir la plage, puis les valeurs de a1 range = sheet.get_Range ("A1", downAddress); sujet[,] valeurs = (objet[,]) Range.Value2; // Pour attacher les valeurs d'en-tête pour (int headCount = 1; headCount <= values.GetLength (1); headCount ++)
essayer
header.Add ((string) values.GetValue (1, headCount)); arrayFlag = true;
capture (Exception ApplicationException)
Console.WriteLine (ApplicationException.Message); arrayFlag = false; pause
// Récupérer les données de test if (arrayFlag == true)
pour (int i = 1; i <= valeurs.GetLength (0); i ++)
pour (int j = 1; j <= valeurs.GetLength (1); j ++)
strictement actualTestCaseID = (chaîne) values.GetValue (i, 1); // Console.WriteLine ("Le cas de test réel est" + actualTestCaseID); if (actualTestCaseID.Equals (testID case))
Console.WriteLine ("Inside if"); iVal = i; arrayFlag = true; pause
if (arrayFlag == true)
// Ajouter des valeurs Excel pour (int j = 1; j <= valeurs.GetLength (1); j ++)
excelValues.Add ((string) values.GetValue (iVal, j));
// Créer HashmapTable int colCount = sheet.UsedRange.Columns.Count; pour (int hashVal = 0; hashVal <= colCount - 1; hashVal ++)
si (excelValues[hashVal] ! = null)
testCaseValues.Add (en-tête[hashVal].ToString (), excelValues[hashVal].ToString ());
autrement
testCaseValues.Add (en-tête[hashVal].ToString (), "");
pause } } } prise (exception e)
caste e;
enfin
plage = zéro; si (livre! = null) book.Close (false, Missing.Value, Missing.Value); bok = null; si (app! = null) app.Quit (); app = null;
renvoyer testCaseValues; }
Je m'attends à ce qu'Excel soit correctement installé après l'installation du logiciel "Access runtime", mais comme il est installé, j'obtiens la même erreur que celle décrite ci-dessus.
Click to rate this post! [Total: 0 Average: 0]
Topics and keywords
Themes: Non classé
License & attribution
License: CC BY-ND 4.0.
Attribution required: yes.
Manifest: https://tutos-gameserver.fr/llm-endpoints-manifest.json
LLM Endpoints plugin version 1.1.2.