{"version":"1.1","schema_version":"1.1.0","plugin_version":"1.1.2","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_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","llm_json_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.json","manifest_url":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","language":"fr-FR","locale":"fr_FR","title":"c # &#8211; Microsoft Access ne s&#39;installe pas correctement dans Windows Server 2012 R2\n\n&#8211; Les meilleures astuces pour son serveur","site":{"name":"Tutos GameServer","url":"https://tutos-gameserver.fr/"},"author":{"id":1,"name":"Titanfall","url":"https://tutos-gameserver.fr/author/titanfall/"},"published_at":"2019-07-07T02:56:36+00:00","modified_at":"2019-07-07T02:56:36+00:00","word_count":610,"reading_time_seconds":183,"summary":"J&#39;ai un code d&#39;automatisation C # qui extrait des données de Microsoft Excel. Lorsque j&#39;essaie d&#39;exécuter ce code sur une machine virtuelle (Windows Server 2012 R2), le message d&#39;erreur ci-dessous s&#39;affiche. &amp; # 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&#39;une des raisons suivantes erreur: 80040154 [&hellip;]","summary_points":["J&#39;ai un code d&#39;automatisation C # qui extrait des données de Microsoft Excel.","Lorsque j&#39;essaie d&#39;exécuter ce code sur une machine virtuelle (Windows Server 2012 R2), le message d&#39;erreur ci-dessous s&#39;affiche.","&amp; # 39; System.Runtime.InteropServices.COMException (0x80040154): Récupération\nFabrique de classe COM pour composant avec CLSID\n00024500-0000-0000-C000-000000000046 a échoué pour l&#39;une des raisons suivantes\nerreur: 80040154 Classe non enregistrée (exception de HRESULT:\n0x80040154 (REGDB_E_CLASSNOTREG)).","&amp; # 39;\n\nJ&#39;ai trouvé que Microsoft Access n&#39;est pas installé et j&#39;ai essayé d&#39;installer le même (Microsoft Access 2013 Runtime), l&#39;installation est réussie."],"topics":["Non classé"],"entities":[],"entities_metadata":[{"id":1,"name":"Non classé","slug":"non-classe","taxonomy":"category","count":1038,"url":"https://tutos-gameserver.fr/category/non-classe/"}],"tags":["Non classé"],"content_hash":"acca7dee07b294ea6fee8d1a30e8dc30","plain_text":"J&#39;ai un code d&#39;automatisation C # qui extrait des données de Microsoft Excel. Lorsque j&#39;essaie d&#39;exécuter ce code sur une machine virtuelle (Windows Server 2012 R2), le message d&#39;erreur ci-dessous s&#39;affiche.\n\n&amp; # 39; System.Runtime.InteropServices.COMException (0x80040154): Récupération\nFabrique de classe COM pour composant avec CLSID\n00024500-0000-0000-C000-000000000046 a échoué pour l&#39;une des raisons suivantes\nerreur: 80040154 Classe non enregistrée (exception de HRESULT:\n0x80040154 (REGDB_E_CLASSNOTREG)). &amp; # 39;\n\nJ&#39;ai trouvé que Microsoft Access n&#39;est pas installé et j&#39;ai essayé d&#39;installer le même (Microsoft Access 2013 Runtime), l&#39;installation est réussie. Mais étrangement, il n&#39;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&#39;y a pas d&#39;enregistrement dans le registre avec la clé 00024500-0000-0000-C000-000000000046\nCode pour obtenir des données à partir d&#39;Excel\n    dictionnaire statique public GetExcelData (strict testDatapath, strict testDataSheet, strict test caseID)\n{\ntestCaseValues.Clear ();\nMicrosoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application ();\nClasseur = null;\nGamme gamme = zéro;\nbool arrayFlag = false;\nint iVal = 0;\nArrayList excelValues ​​= new ArrayList ();\nArrayList header = new ArrayList ();\nessayer\n{\napp.Visible = false;\napp.ScreenUpdating = false;\napp.DisplayAlerts = false;\nbok = app.Workbooks.Open (testDatapath);\nConsole.WriteLine (&quot;récupère Excel à partir de&quot; + testDatapath);\nforeach (Feuilles de travail en feuilles. Feuilles de travail)\n{\nif (sheet.Name.Equals (testDataSheet))\n{\nConsole.WriteLine (&quot;La fiche de test est&quot; + testDataSheet);\n// obtenir une sélection pour travailler avec\nrange = sheet.get_Range (&quot;A1&quot;, Missing.Value);\n// place la fin des valeurs à droite (s&#39;arrête à la première cellule vide)\nrange = range.get_End (XlDirection.xlToRight);\n// termine les valeurs vers le bas, voir dans la dernière colonne (s&#39;arrête à la première cellule vide)\nrange = range.get_End (XlDirection.xlDown);\n// récupère l&#39;adresse du bas, cellule de droite\nstrict downAddress = range.get_Address (false, false, XlReferenceStyle.xlA1, Type.Missing, Type.Missing);\n// Obtenir la plage, puis les valeurs de a1\nrange = sheet.get_Range (&quot;A1&quot;, downAddress);\nsujet[,] valeurs = (objet[,]) Range.Value2;\n// Pour attacher les valeurs d&#39;en-tête\npour (int headCount = 1; headCount &lt;= values.GetLength (1); headCount ++)\n\nessayer\n\nheader.Add ((string) values.GetValue (1, headCount));\narrayFlag = true;\n\ncapture (Exception ApplicationException)\n\nConsole.WriteLine (ApplicationException.Message);\narrayFlag = false;\npause\n\n\n// Récupérer les données de test\nif (arrayFlag == true)\n\npour (int i = 1; i &lt;= valeurs.GetLength (0); i ++)\n\npour (int j = 1; j &lt;= valeurs.GetLength (1); j ++)\n\nstrictement actualTestCaseID = (chaîne) values.GetValue (i, 1);\n// Console.WriteLine (&quot;Le cas de test réel est&quot; + actualTestCaseID);\nif (actualTestCaseID.Equals (testID case))\n\nConsole.WriteLine (&quot;Inside if&quot;);\niVal = i;\narrayFlag = true;\npause\n\n\n\n\nif (arrayFlag == true)\n\n// Ajouter des valeurs Excel\npour (int j = 1; j &lt;= valeurs.GetLength (1); j ++)\n\nexcelValues.Add ((string) values.GetValue (iVal, j));\n\n// Créer HashmapTable\nint colCount = sheet.UsedRange.Columns.Count;\npour (int hashVal = 0; hashVal &lt;= colCount - 1; hashVal ++)\n\nsi (excelValues[hashVal] ! = null)\n\ntestCaseValues.Add (en-tête[hashVal].ToString (), excelValues[hashVal].ToString ());\n\nautrement\n\ntestCaseValues.Add (en-tête[hashVal].ToString (), &quot;&quot;);\n\n\n\n\npause\n}\n}\n}\nprise (exception e)\n\ncaste e;\n\nenfin\n\nplage = zéro;\nsi (livre! = null)\nbook.Close (false, Missing.Value, Missing.Value);\nbok = null;\nsi (app! = null)\napp.Quit ();\napp = null;\n\n\nrenvoyer testCaseValues;\n}\n\nJe m&#39;attends à ce qu&#39;Excel soit correctement installé après l&#39;installation du logiciel &quot;Access runtime&quot;, mais comme il est installé, j&#39;obtiens la même erreur que celle décrite ci-dessus.\n\n\nClick to rate this post!\r\n                                   \r\n                               [Total: 0  Average: 0]","paragraphs":["J&#39;ai un code d&#39;automatisation C # qui extrait des données de Microsoft Excel. Lorsque j&#39;essaie d&#39;exécuter ce code sur une machine virtuelle (Windows Server 2012 R2), le message d&#39;erreur ci-dessous s&#39;affiche.","&amp; # 39; System.Runtime.InteropServices.COMException (0x80040154): Récupération\nFabrique de classe COM pour composant avec CLSID\n00024500-0000-0000-C000-000000000046 a échoué pour l&#39;une des raisons suivantes\nerreur: 80040154 Classe non enregistrée (exception de HRESULT:\n0x80040154 (REGDB_E_CLASSNOTREG)). &amp; # 39;","J&#39;ai trouvé que Microsoft Access n&#39;est pas installé et j&#39;ai essayé d&#39;installer le même (Microsoft Access 2013 Runtime), l&#39;installation est réussie. Mais étrangement, il n&#39;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&#39;y a pas d&#39;enregistrement dans le registre avec la clé 00024500-0000-0000-C000-000000000046\nCode pour obtenir des données à partir d&#39;Excel\n    dictionnaire statique public GetExcelData (strict testDatapath, strict testDataSheet, strict test caseID)\n{\ntestCaseValues.Clear ();\nMicrosoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application ();\nClasseur = null;\nGamme gamme = zéro;\nbool arrayFlag = false;\nint iVal = 0;\nArrayList excelValues ​​= new ArrayList ();\nArrayList header = new ArrayList ();\nessayer\n{\napp.Visible = false;\napp.ScreenUpdating = false;\napp.DisplayAlerts = false;\nbok = app.Workbooks.Open (testDatapath);\nConsole.WriteLine (&quot;récupère Excel à partir de&quot; + testDatapath);\nforeach (Feuilles de travail en feuilles. Feuilles de travail)\n{\nif (sheet.Name.Equals (testDataSheet))\n{\nConsole.WriteLine (&quot;La fiche de test est&quot; + testDataSheet);\n// obtenir une sélection pour travailler avec\nrange = sheet.get_Range (&quot;A1&quot;, Missing.Value);\n// place la fin des valeurs à droite (s&#39;arrête à la première cellule vide)\nrange = range.get_End (XlDirection.xlToRight);\n// termine les valeurs vers le bas, voir dans la dernière colonne (s&#39;arrête à la première cellule vide)\nrange = range.get_End (XlDirection.xlDown);\n// récupère l&#39;adresse du bas, cellule de droite\nstrict downAddress = range.get_Address (false, false, XlReferenceStyle.xlA1, Type.Missing, Type.Missing);\n// Obtenir la plage, puis les valeurs de a1\nrange = sheet.get_Range (&quot;A1&quot;, downAddress);\nsujet[,] valeurs = (objet[,]) Range.Value2;\n// Pour attacher les valeurs d&#39;en-tête\npour (int headCount = 1; headCount &lt;= values.GetLength (1); headCount ++)","essayer","header.Add ((string) values.GetValue (1, headCount));\narrayFlag = true;","capture (Exception ApplicationException)","Console.WriteLine (ApplicationException.Message);\narrayFlag = false;\npause","// Récupérer les données de test\nif (arrayFlag == true)","pour (int i = 1; i &lt;= valeurs.GetLength (0); i ++)","pour (int j = 1; j &lt;= valeurs.GetLength (1); j ++)","strictement actualTestCaseID = (chaîne) values.GetValue (i, 1);\n// Console.WriteLine (&quot;Le cas de test réel est&quot; + actualTestCaseID);\nif (actualTestCaseID.Equals (testID case))","Console.WriteLine (&quot;Inside if&quot;);\niVal = i;\narrayFlag = true;\npause","if (arrayFlag == true)","// Ajouter des valeurs Excel\npour (int j = 1; j &lt;= valeurs.GetLength (1); j ++)","excelValues.Add ((string) values.GetValue (iVal, j));","// Créer HashmapTable\nint colCount = sheet.UsedRange.Columns.Count;\npour (int hashVal = 0; hashVal &lt;= 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 (), &quot;&quot;);","pause\n}\n}\n}\nprise (exception e)","caste e;","enfin","plage = zéro;\nsi (livre! = null)\nbook.Close (false, Missing.Value, Missing.Value);\nbok = null;\nsi (app! = null)\napp.Quit ();\napp = null;","renvoyer testCaseValues;\n}","Je m&#39;attends à ce qu&#39;Excel soit correctement installé après l&#39;installation du logiciel &quot;Access runtime&quot;, mais comme il est installé, j&#39;obtiens la même erreur que celle décrite ci-dessus.","Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"],"content_blocks":[{"id":"text-1","type":"text","heading":"","plain_text":"J&#39;ai un code d&#39;automatisation C # qui extrait des données de Microsoft Excel. Lorsque j&#39;essaie d&#39;exécuter ce code sur une machine virtuelle (Windows Server 2012 R2), le message d&#39;erreur ci-dessous s&#39;affiche.","html":"<p>J&#039;ai un code d&#039;automatisation C # qui extrait des données de Microsoft Excel. Lorsque j&#039;essaie d&#039;exécuter ce code sur une machine virtuelle (Windows Server 2012 R2), le message d&#039;erreur ci-dessous s&#039;affiche.</p>"},{"id":"text-2","type":"text","heading":"","plain_text":"&amp; # 39; System.Runtime.InteropServices.COMException (0x80040154): Récupération\nFabrique de classe COM pour composant avec CLSID\n00024500-0000-0000-C000-000000000046 a échoué pour l&#39;une des raisons suivantes\nerreur: 80040154 Classe non enregistrée (exception de HRESULT:\n0x80040154 (REGDB_E_CLASSNOTREG)). &amp; # 39;","html":"<p>&amp; # 39; System.Runtime.InteropServices.COMException (0x80040154): Récupération\nFabrique de classe COM pour composant avec CLSID\n00024500-0000-0000-C000-000000000046 a échoué pour l&#039;une des raisons suivantes\nerreur: 80040154 Classe non enregistrée (exception de HRESULT:\n0x80040154 (REGDB_E_CLASSNOTREG)). &amp; # 39;</p>"},{"id":"text-3","type":"text","heading":"","plain_text":"J&#39;ai trouvé que Microsoft Access n&#39;est pas installé et j&#39;ai essayé d&#39;installer le même (Microsoft Access 2013 Runtime), l&#39;installation est réussie. Mais étrangement, il n&#39;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&#39;y a pas d&#39;enregistrement dans le registre avec la clé 00024500-0000-0000-C000-000000000046\nCode pour obtenir des données à partir d&#39;Excel\n    dictionnaire statique public GetExcelData (strict testDatapath, strict testDataSheet, strict test caseID)\n{\ntestCaseValues.Clear ();\nMicrosoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application ();\nClasseur = null;\nGamme gamme = zéro;\nbool arrayFlag = false;\nint iVal = 0;\nArrayList excelValues ​​= new ArrayList ();\nArrayList header = new ArrayList ();\nessayer\n{\napp.Visible = false;\napp.ScreenUpdating = false;\napp.DisplayAlerts = false;\nbok = app.Workbooks.Open (testDatapath);\nConsole.WriteLine (&quot;récupère Excel à partir de&quot; + testDatapath);\nforeach (Feuilles de travail en feuilles. Feuilles de travail)\n{\nif (sheet.Name.Equals (testDataSheet))\n{\nConsole.WriteLine (&quot;La fiche de test est&quot; + testDataSheet);\n// obtenir une sélection pour travailler avec\nrange = sheet.get_Range (&quot;A1&quot;, Missing.Value);\n// place la fin des valeurs à droite (s&#39;arrête à la première cellule vide)\nrange = range.get_End (XlDirection.xlToRight);\n// termine les valeurs vers le bas, voir dans la dernière colonne (s&#39;arrête à la première cellule vide)\nrange = range.get_End (XlDirection.xlDown);\n// récupère l&#39;adresse du bas, cellule de droite\nstrict downAddress = range.get_Address (false, false, XlReferenceStyle.xlA1, Type.Missing, Type.Missing);\n// Obtenir la plage, puis les valeurs de a1\nrange = sheet.get_Range (&quot;A1&quot;, downAddress);\nsujet[,] valeurs = (objet[,]) Range.Value2;\n// Pour attacher les valeurs d&#39;en-tête\npour (int headCount = 1; headCount &lt;= values.GetLength (1); headCount ++)","html":"<p>J&#039;ai trouvé que Microsoft Access n&#039;est pas installé et j&#039;ai essayé d&#039;installer le même (Microsoft Access 2013 Runtime), l&#039;installation est réussie. Mais étrangement, il n&#039;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&#039;y a pas d&#039;enregistrement dans le registre avec la clé 00024500-0000-0000-C000-000000000046\nCode pour obtenir des données à partir d&#039;Excel\n    dictionnaire statique public GetExcelData (strict testDatapath, strict testDataSheet, strict test caseID)\n{\ntestCaseValues.Clear ();\nMicrosoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application ();\nClasseur = null;\nGamme gamme = zéro;\nbool arrayFlag = false;\nint iVal = 0;\nArrayList excelValues ​​= new ArrayList ();\nArrayList header = new ArrayList ();\nessayer\n{\napp.Visible = false;\napp.ScreenUpdating = false;\napp.DisplayAlerts = false;\nbok = app.Workbooks.Open (testDatapath);\nConsole.WriteLine (&quot;récupère Excel à partir de&quot; + testDatapath);\nforeach (Feuilles de travail en feuilles. Feuilles de travail)\n{\nif (sheet.Name.Equals (testDataSheet))\n{\nConsole.WriteLine (&quot;La fiche de test est&quot; + testDataSheet);\n// obtenir une sélection pour travailler avec\nrange = sheet.get_Range (&quot;A1&quot;, Missing.Value);\n// place la fin des valeurs à droite (s&#039;arrête à la première cellule vide)\nrange = range.get_End (XlDirection.xlToRight);\n// termine les valeurs vers le bas, voir dans la dernière colonne (s&#039;arrête à la première cellule vide)\nrange = range.get_End (XlDirection.xlDown);\n// récupère l&#039;adresse du bas, cellule de droite\nstrict downAddress = range.get_Address (false, false, XlReferenceStyle.xlA1, Type.Missing, Type.Missing);\n// Obtenir la plage, puis les valeurs de a1\nrange = sheet.get_Range (&quot;A1&quot;, downAddress);\nsujet[,] valeurs = (objet[,]) Range.Value2;\n// Pour attacher les valeurs d&#039;en-tête\npour (int headCount = 1; headCount &lt;= values.GetLength (1); headCount ++)</p>"},{"id":"text-4","type":"text","heading":"","plain_text":"essayer","html":"<p>essayer</p>"},{"id":"text-5","type":"text","heading":"","plain_text":"header.Add ((string) values.GetValue (1, headCount));\narrayFlag = true;","html":"<p>header.Add ((string) values.GetValue (1, headCount));\narrayFlag = true;</p>"},{"id":"text-6","type":"text","heading":"","plain_text":"capture (Exception ApplicationException)","html":"<p>capture (Exception ApplicationException)</p>"},{"id":"text-7","type":"text","heading":"","plain_text":"Console.WriteLine (ApplicationException.Message);\narrayFlag = false;\npause","html":"<p>Console.WriteLine (ApplicationException.Message);\narrayFlag = false;\npause</p>"},{"id":"text-8","type":"text","heading":"","plain_text":"// Récupérer les données de test\nif (arrayFlag == true)","html":"<p>// Récupérer les données de test\nif (arrayFlag == true)</p>"},{"id":"text-9","type":"text","heading":"","plain_text":"pour (int i = 1; i &lt;= valeurs.GetLength (0); i ++)","html":"<p>pour (int i = 1; i &lt;= valeurs.GetLength (0); i ++)</p>"},{"id":"text-10","type":"text","heading":"","plain_text":"pour (int j = 1; j &lt;= valeurs.GetLength (1); j ++)","html":"<p>pour (int j = 1; j &lt;= valeurs.GetLength (1); j ++)</p>"},{"id":"text-11","type":"text","heading":"","plain_text":"strictement actualTestCaseID = (chaîne) values.GetValue (i, 1);\n// Console.WriteLine (&quot;Le cas de test réel est&quot; + actualTestCaseID);\nif (actualTestCaseID.Equals (testID case))","html":"<p>strictement actualTestCaseID = (chaîne) values.GetValue (i, 1);\n// Console.WriteLine (&quot;Le cas de test réel est&quot; + actualTestCaseID);\nif (actualTestCaseID.Equals (testID case))</p>"},{"id":"text-12","type":"text","heading":"","plain_text":"Console.WriteLine (&quot;Inside if&quot;);\niVal = i;\narrayFlag = true;\npause","html":"<p>Console.WriteLine (&quot;Inside if&quot;);\niVal = i;\narrayFlag = true;\npause</p>"},{"id":"text-13","type":"text","heading":"","plain_text":"if (arrayFlag == true)","html":"<p>if (arrayFlag == true)</p>"},{"id":"text-14","type":"text","heading":"","plain_text":"// Ajouter des valeurs Excel\npour (int j = 1; j &lt;= valeurs.GetLength (1); j ++)","html":"<p>// Ajouter des valeurs Excel\npour (int j = 1; j &lt;= valeurs.GetLength (1); j ++)</p>"},{"id":"text-15","type":"text","heading":"","plain_text":"excelValues.Add ((string) values.GetValue (iVal, j));","html":"<p>excelValues.Add ((string) values.GetValue (iVal, j));</p>"},{"id":"text-16","type":"text","heading":"","plain_text":"// Créer HashmapTable\nint colCount = sheet.UsedRange.Columns.Count;\npour (int hashVal = 0; hashVal &lt;= colCount - 1; hashVal ++)","html":"<p>// Créer HashmapTable\nint colCount = sheet.UsedRange.Columns.Count;\npour (int hashVal = 0; hashVal &lt;= colCount - 1; hashVal ++)</p>"},{"id":"text-17","type":"text","heading":"","plain_text":"si (excelValues[hashVal] ! = null)","html":"<p>si (excelValues[hashVal] ! = null)</p>"},{"id":"text-18","type":"text","heading":"","plain_text":"testCaseValues.Add (en-tête[hashVal].ToString (), excelValues[hashVal].ToString ());","html":"<p>testCaseValues.Add (en-tête[hashVal].ToString (), excelValues[hashVal].ToString ());</p>"},{"id":"text-19","type":"text","heading":"","plain_text":"autrement","html":"<p>autrement</p>"},{"id":"text-20","type":"text","heading":"","plain_text":"testCaseValues.Add (en-tête[hashVal].ToString (), &quot;&quot;);","html":"<p>testCaseValues.Add (en-tête[hashVal].ToString (), &quot;&quot;);</p>"},{"id":"text-21","type":"text","heading":"","plain_text":"pause\n}\n}\n}\nprise (exception e)","html":"<p>pause\n}\n}\n}\nprise (exception e)</p>"},{"id":"text-22","type":"text","heading":"","plain_text":"caste e;","html":"<p>caste e;</p>"},{"id":"text-23","type":"text","heading":"","plain_text":"enfin","html":"<p>enfin</p>"},{"id":"text-24","type":"text","heading":"","plain_text":"plage = zéro;\nsi (livre! = null)\nbook.Close (false, Missing.Value, Missing.Value);\nbok = null;\nsi (app! = null)\napp.Quit ();\napp = null;","html":"<p>plage = zéro;\nsi (livre! = null)\nbook.Close (false, Missing.Value, Missing.Value);\nbok = null;\nsi (app! = null)\napp.Quit ();\napp = null;</p>"},{"id":"text-25","type":"text","heading":"","plain_text":"renvoyer testCaseValues;\n}","html":"<p>renvoyer testCaseValues;\n}</p>"},{"id":"text-26","type":"text","heading":"","plain_text":"Je m&#39;attends à ce qu&#39;Excel soit correctement installé après l&#39;installation du logiciel &quot;Access runtime&quot;, mais comme il est installé, j&#39;obtiens la même erreur que celle décrite ci-dessus.","html":"<p>Je m&#039;attends à ce qu&#039;Excel soit correctement installé après l&#039;installation du logiciel &quot;Access runtime&quot;, mais comme il est installé, j&#039;obtiens la même erreur que celle décrite ci-dessus.</p>"},{"id":"text-27","type":"text","heading":"","plain_text":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]","html":"<p>Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]</p>"}],"sections":[{"id":"text-1","heading":"Text","content":"J&#39;ai un code d&#39;automatisation C # qui extrait des données de Microsoft Excel. Lorsque j&#39;essaie d&#39;exécuter ce code sur une machine virtuelle (Windows Server 2012 R2), le message d&#39;erreur ci-dessous s&#39;affiche."},{"id":"text-2","heading":"Text","content":"&amp; # 39; System.Runtime.InteropServices.COMException (0x80040154): Récupération\nFabrique de classe COM pour composant avec CLSID\n00024500-0000-0000-C000-000000000046 a échoué pour l&#39;une des raisons suivantes\nerreur: 80040154 Classe non enregistrée (exception de HRESULT:\n0x80040154 (REGDB_E_CLASSNOTREG)). &amp; # 39;"},{"id":"text-3","heading":"Text","content":"J&#39;ai trouvé que Microsoft Access n&#39;est pas installé et j&#39;ai essayé d&#39;installer le même (Microsoft Access 2013 Runtime), l&#39;installation est réussie. Mais étrangement, il n&#39;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&#39;y a pas d&#39;enregistrement dans le registre avec la clé 00024500-0000-0000-C000-000000000046\nCode pour obtenir des données à partir d&#39;Excel\n    dictionnaire statique public GetExcelData (strict testDatapath, strict testDataSheet, strict test caseID)\n{\ntestCaseValues.Clear ();\nMicrosoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application ();\nClasseur = null;\nGamme gamme = zéro;\nbool arrayFlag = false;\nint iVal = 0;\nArrayList excelValues ​​= new ArrayList ();\nArrayList header = new ArrayList ();\nessayer\n{\napp.Visible = false;\napp.ScreenUpdating = false;\napp.DisplayAlerts = false;\nbok = app.Workbooks.Open (testDatapath);\nConsole.WriteLine (&quot;récupère Excel à partir de&quot; + testDatapath);\nforeach (Feuilles de travail en feuilles. Feuilles de travail)\n{\nif (sheet.Name.Equals (testDataSheet))\n{\nConsole.WriteLine (&quot;La fiche de test est&quot; + testDataSheet);\n// obtenir une sélection pour travailler avec\nrange = sheet.get_Range (&quot;A1&quot;, Missing.Value);\n// place la fin des valeurs à droite (s&#39;arrête à la première cellule vide)\nrange = range.get_End (XlDirection.xlToRight);\n// termine les valeurs vers le bas, voir dans la dernière colonne (s&#39;arrête à la première cellule vide)\nrange = range.get_End (XlDirection.xlDown);\n// récupère l&#39;adresse du bas, cellule de droite\nstrict downAddress = range.get_Address (false, false, XlReferenceStyle.xlA1, Type.Missing, Type.Missing);\n// Obtenir la plage, puis les valeurs de a1\nrange = sheet.get_Range (&quot;A1&quot;, downAddress);\nsujet[,] valeurs = (objet[,]) Range.Value2;\n// Pour attacher les valeurs d&#39;en-tête\npour (int headCount = 1; headCount &lt;= values.GetLength (1); headCount ++)"},{"id":"text-4","heading":"Text","content":"essayer"},{"id":"text-5","heading":"Text","content":"header.Add ((string) values.GetValue (1, headCount));\narrayFlag = true;"},{"id":"text-6","heading":"Text","content":"capture (Exception ApplicationException)"},{"id":"text-7","heading":"Text","content":"Console.WriteLine (ApplicationException.Message);\narrayFlag = false;\npause"},{"id":"text-8","heading":"Text","content":"// Récupérer les données de test\nif (arrayFlag == true)"},{"id":"text-9","heading":"Text","content":"pour (int i = 1; i &lt;= valeurs.GetLength (0); i ++)"},{"id":"text-10","heading":"Text","content":"pour (int j = 1; j &lt;= valeurs.GetLength (1); j ++)"},{"id":"text-11","heading":"Text","content":"strictement actualTestCaseID = (chaîne) values.GetValue (i, 1);\n// Console.WriteLine (&quot;Le cas de test réel est&quot; + actualTestCaseID);\nif (actualTestCaseID.Equals (testID case))"},{"id":"text-12","heading":"Text","content":"Console.WriteLine (&quot;Inside if&quot;);\niVal = i;\narrayFlag = true;\npause"},{"id":"text-13","heading":"Text","content":"if (arrayFlag == true)"},{"id":"text-14","heading":"Text","content":"// Ajouter des valeurs Excel\npour (int j = 1; j &lt;= valeurs.GetLength (1); j ++)"},{"id":"text-15","heading":"Text","content":"excelValues.Add ((string) values.GetValue (iVal, j));"},{"id":"text-16","heading":"Text","content":"// Créer HashmapTable\nint colCount = sheet.UsedRange.Columns.Count;\npour (int hashVal = 0; hashVal &lt;= colCount - 1; hashVal ++)"},{"id":"text-17","heading":"Text","content":"si (excelValues[hashVal] ! = null)"},{"id":"text-18","heading":"Text","content":"testCaseValues.Add (en-tête[hashVal].ToString (), excelValues[hashVal].ToString ());"},{"id":"text-19","heading":"Text","content":"autrement"},{"id":"text-20","heading":"Text","content":"testCaseValues.Add (en-tête[hashVal].ToString (), &quot;&quot;);"},{"id":"text-21","heading":"Text","content":"pause\n}\n}\n}\nprise (exception e)"},{"id":"text-22","heading":"Text","content":"caste e;"},{"id":"text-23","heading":"Text","content":"enfin"},{"id":"text-24","heading":"Text","content":"plage = zéro;\nsi (livre! = null)\nbook.Close (false, Missing.Value, Missing.Value);\nbok = null;\nsi (app! = null)\napp.Quit ();\napp = null;"},{"id":"text-25","heading":"Text","content":"renvoyer testCaseValues;\n}"},{"id":"text-26","heading":"Text","content":"Je m&#39;attends à ce qu&#39;Excel soit correctement installé après l&#39;installation du logiciel &quot;Access runtime&quot;, mais comme il est installé, j&#39;obtiens la même erreur que celle décrite ci-dessus."},{"id":"text-27","heading":"Text","content":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"}],"media":{"primary_image":"https://tutos-gameserver.fr/wp-content/uploads/2019/04/apple-touch-icon@2.png"},"relations":[{"rel":"canonical","href":"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/"},{"rel":"alternate","href":"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","type":"text/html"},{"rel":"alternate","href":"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","type":"application/json"},{"rel":"llm-manifest","href":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","type":"application/json"}],"http_headers":{"X-LLM-Friendly":"1","X-LLM-Schema":"1.1.0","Content-Security-Policy":"default-src 'none'; img-src * data:; style-src 'unsafe-inline'"},"license":"CC BY-ND 4.0","attribution_required":true,"allow_cors":false}