2012-08-28 5 views
0

J'essaie d'utiliser le code suivant sur mon Windows Server 2008 R2 64 bits (pas SP1).FileVersionInfo ne fonctionne pas dans Win2008 R2

using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Xml; 
using System.Diagnostics; 
using System.IO; 

namespace TestWrite 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 

     try 
     { 

     FileVersionInfo myFileVersionInfo = FileVersionInfo.GetVersionInfo(@"C:\Windows\system32\Notepad.exe"); 

      Console.WriteLine("File: " + myFileVersionInfo.FileDescription + '\n' + "Version number: " + myFileVersionInfo.FileVersion); 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex); 
     } 
     Console.ReadLine(); 
    } 
} 
} 

Je reçois ce message d'erreur: System.DllNotFoundException: Impossible de charger « version.dll » DLL: Le système ne peut pas trouver le fichier spécifié.

+0

Est-ce une application 64 bits ou 32 bits? –

+0

En V.S., la cible de la plateforme est définie sur "Any CPU". – Knaks

+1

Juste pour les grins, recompilez votre application et changez la cible en X86, ce qui devrait forcer la cible dans une application 32 bits. Si l'erreur persiste, je vérifierais la présence de \ windows \ system32 \ version.dll sur la machine cible. –

Répondre

1

Assurez-vous de vérifier les points suivants:

  • Les travaux de la bibliothèque System.Diagnostics en exécutant ce code

    EventLog[] eventLogs = EventLog.GetEventLogs(); 
    foreach (EventLog e in eventLogs) { 
        Console.WriteLine("{0}:", e.LogDisplayName); 
    } 
    
  • Comme David W rappelle, vérifiez la plate-forme de solution (Any CPU ou x86 via Solution Configuration Manager)

  • Est le .NET Framework 4.0 est installé correctement? Ou essayez une ré-installation.

+0

Il me manque la connexion du premier point à la question. –

+0

C'était un framework .Net défectueux. – Knaks

+0

Le premier point était un autre cas de test pour vérifier le cadre –

Questions connexes