Comment doit-on les développeurs sur la cible VS2008 .net 2.0 (mais pas le service pack) pour éviter les accidents d'exécution?

StackOverflow https://stackoverflow.com/questions/1357472

Question

Alors, je veux améliorer mon équipe de développement VS2008. En tant qu'entreprise, nous n'avons pas encore déployé l'exécution 3.5.

De quelques lectures, il semble que l'installation VS2008 vous donnera automatiquement .net 2.0 SP1, qui a quelques nouvelles API, et lorsque vous ciblez 2.0 runtime il supposera 2.0 SP1.

Mais si SP1 n'est pas déployé à nos utilisateurs, cela conduira à des ruptures d'exécution.

  1. Y at-il de toute façon d'avoir VS cible dotnet 2.0 (pas SP1)?
  2. Y at-il d'autres solutions à ce problème afin que les développeurs ne pas utiliser les API qui compilent et fonctionnent très bien localement, mais sauter dans la production?

Je vois que FxCop a un chèque pour cela, mais la solution il doit y avoir une plus infaillible à ce problème.

Était-ce utile?

La solution

Cela peut être difficile ou facile. Nous sommes allés les deux itinéraires:

  1. La méthode simple: Mettre en place un serveur de build qui a seulement .NET 2.0 installé. Automatiser la construction de fonctionner à l'arrivée (nous utilisons CruiseControl.Net). Vous devrez utiliser MSBuild de l'invite de commande pour construire les projets.

  2. Pour les machines à 3.5 installé de nombreux outils MSBuild sont remplacés même lorsque vous exécutez le MSBuild à partir du répertoire framework .Net 2.0. Pour éviter cela, vous devez créer une application qui force l'utilisation continue du moteur d'exécution .Net 2.0 uniquement. Ce n'est pas facile. On charge directement les projets et invoquons la construction en utilisant l'Microsoft.Build le cadre. *. Cela seul est pas encore assez. Vous devez épingler les ensembles que vous souhaitez utiliser dans votre fichier .config:

                                                                                  ... ect ...        

BTW, vous pouvez également problème avec les nouveaux projets créés dans VS2008 attendent une propriété appelée « MSBuildToolsPath » qui doit être défini. Vous pouvez définir cela sur la ligne de commande si vous utilisez MSBuild, ou spécifier si vous utilisez la programatically deuxième option:

engine.GlobalProperties.SetProperty( "MSBuildToolsPath", msbuildPath );

Autres conseils

Peut-être le supportedRuntime élément de configuration vaut la peine d'avoir un coup d'oeil. Mais je ne sais pas si cela peut aider.

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