Question

Supposons que j'ai du code qui, en théorie, serait compilé avec n'importe lequel version du framework .net.Pensez à « Hello World », si vous le souhaitez.

Si je compile réellement le code, j'obtiendrai un exécutable qui s'exécute sur un particulier version.

Existe-t-il un moyen d'arranger les choses pour que l'exe compilé s'exécute simplement sur la version qu'il trouve ?Je soupçonne fortement que la réponse est non, mais je serais heureux d'avoir tort...


Modifier:Eh bien, je vais aller au pied de nos escaliers.Je ne savais pas que les frameworks ultérieurs exécuteraient volontiers les exe compilés sous les versions antérieures.Merci pour toutes les réponses!

Était-ce utile?

La solution

Je ne sais pas si cela est correct, mais j'essaierais de le compiler pour la version la plus basse, les versions supérieures devraient pouvoir exécuter les versions inférieures des exe.

Autres conseils

Lisez l'article de ScuttGu à propos de Prise en charge du ciblage multiple VS 2008

L'un des grands changements que nous apportons à partir de la version VS 2008 est de prendre en charge ce que nous appelons «multi-ciblement» - ce qui signifie que Visual Studio prendra maintenant en charge le ciblage de plusieurs versions du .NET Framework, et les développeurs pourront commencer Profitant des nouvelles fonctionnalités que Visual Studio offre sans avoir à toujours mettre à niveau leurs projets existants et les applications déployées pour utiliser une nouvelle version de la bibliothèque .NET Framework.

Maintenant, lorsque vous ouvrez un projet existant ou créez un nouveau avec VS 2008, vous pouvez choisir la version du .NET Framework avec lequel travailler - et l'IDE mettra à jour ses compilateurs et ses fonctionnalités pour correspondre à cela.Entre autres choses, cela signifie que les fonctionnalités, les commandes, les projets, les temps d'articles et les références d'assemblage qui ne fonctionnent pas avec cette version du framework seront cachées, et lorsque vous créez votre application, vous pourrez prendre le compilé Sortir et le copier sur une machine qui n'a qu'une ancienne version du .NET Framework installée, et vous saurez que l'application fonctionnera.

De cette façon, vous pouvez utiliser VS2008 pour développer des projets .NET 2.0 qui fonctionneront à la fois sur .NET 2.0, 3.0 et 3.5.

Outre le multi-ciblage, les frameworks sont rétrocompatibles, donc quelque chose compilé en 1.0 fonctionnera sur 1.1 et 2.Quelque chose compilé sur 1.1 fonctionnera sur 2...etc.

Je sais @John Boker est correct en ce qui concerne les bibliothèques de classes .Net.Vous pouvez compiler une bibliothèque de classes avec .Net 1.1, puis l'utiliser dans un projet .Net 2.0 ou supérieur.

Je soupçonne que la même chose est également vraie pour les exécutables.

avec 2005 & 2008, oui (sur CLR 2.0)

Avec 2003, non..car il compile jusqu'à CLR 1.1

Vous pouvez théoriquement écrire du code en utilisant #if (DOTNET35) et autres afin de ne pas utiliser de fonctionnalités en dehors des connaissances du compilateur, puis exécuter le compilateur souhaité sur l'application...Je m'interroge cependant sur l'utilité de cela.

Eh bien, autant que je sache, toutes les versions de .NET (sauf la version 1.x) se compilent avec le même bytecode.Dans le cas de C#, toutes les nouvelles fonctionnalités sont simplement du sucre syntaxique, qui est transformé en constructions C# 2.0 lors de la compilation.Le point clé où les choses pourraient mal tourner est lorsque vous utilisez des DLL spécifiques à C# 3.0 ou 3.5.Ils ne fonctionnent pas bien avec le framework .NET 2.0, vous ne pouvez donc pas les utiliser.

Je ne peux pas vraiment penser à une solution de contournement pour cela, désolé :(

En ce qui concerne le framework .NET installé par l'utilisateur, il existe également une nouvelle option avec le profil client disponible avec .NET 3.5 SP1.Cela vous permet essentiellement de fournir un petit programme d'amorçage (277 Ko) qui télécharge et installe les fichiers requis (un sous-ensemble du framework .NET complet).

Pour plus d'informations et des conseils généraux sur la création d'une petite installation .NET, consultez cet excellent entrée de blog par Scott Hanselman.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top