2017-07-27 10 views
1

J'ai écrit une application de formulaire Windows très simple (la première) en C# en utilisant Visual Studio. L'application affiche simplement une boîte de dialogue avec des informations sur la machine locale (adresses IP locales, nom d'utilisateur, nom de PC, domaine, entre autres) et c'est tout. Il se termine lorsque les utilisateurs cliquent sur le bouton 'OK'.Application de formulaire Windows simple et exigences de framework .NET sous XP

Je voudrais déployer l'application en tant qu'exécutable qui s'exécute directement en double-cliquant. J'ai extrait l'exécutable généré par Visual Studio dans le dossier du projet et je l'ai exécuté avec succès sur un certain nombre d'ordinateurs différents. Cependant, sur certains ordinateurs avec XP, je reçois un message d'erreur disant que ce n'est pas une application WIN32 valide.

Je suis pressumant le problème est le cadre .NET n'est pas présent ou une version plus ancienne que la version ciblée est installée.

Ma question est, est-il possible de s'assurer que l'application fonctionne sur (au moins) Windows XP mais l'a toujours comme un simple exécutable qui fonctionne en double-clic?

Merci d'avance.

Répondre

0

Vous pouvez essayer l'une des approches suivantes:

  • Utilisez un installateur (par exemple Inno Setup) pour déployer votre application et installer le framework .NET si nécessaire (Sample for .NET 4.5 and Inno Setup)
  • suffit de vérifier si le nécessaire. La version du framework NET est installée lors de l'installation et notifie l'utilisateur si ce n'est pas le cas (Sample with Inno Setup)
  • Compile avec .NET Native (je ne l'ai pas encore utilisé, donc je ne sais pas trop à ce sujet, mais peut-être ce Intro peut vous aider)
  • Utilisez C++ et WMI au lieu

EDIT1: .NET natif nécessite Windows 10, traversé d'en haut

EDIT2: Ajouté C++ avec WMI comme une approche alternative

+0

Merci, @wobuntu. Cette petite application est censée être abandonnée sur les ordinateurs du client (de mon entreprise) afin que, lorsque le soutien est nécessaire, les informations affichées dans la boîte de dialogue peuvent être facilement fournies. Forcer l'utilisateur à passer par une installation juste pour montrer une boîte de dialogue semble trop. J'avais fait un VBScript avant que ça fonctionne bien partout, mais je suis très limité dans ce que je peux faire à la boîte de dialogue (pas d'image personnalisée, par exemple). Est-il possible de vérifier le .NET requis lors de l'exécution et que l'application lance le VBScript au lieu de son propre dialogue si le framework n'est pas détecté? –

+0

Si vous voulez une application autonome simple qui s'exécute même sous XP, je vous recommande d'utiliser C++ en combinaison avec WMI à la place. Il y a une grande intro dans WMI ici: http://win32easy.blogspot.co.at/2011/03/wmi-in-c-query-everyting-from-your-os.html?m=1 Comparé à d'autres solutions , il pourrait être le plus facile pour votre problème et est assez simple à utiliser. En outre, vous trouverez beaucoup de How-Tos ici aussi sur Stack Overflow. – wobuntu