Problèmes de dépendance de razor dans ServiceStack 4

J’essaie de mettre à niveau une application vers ServiceStack 4, mais je reçois une erreur avec la référence à System.Web.WebPages.Razor dans Web.config :

Impossible de charger le fichier ou l’assembly ‘System.Web.WebPages.Razor, Version = 1.0.0.0 , Culture = neutre, PublicKeyToken = 31bf3856ad364e35′ ou l’une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.

La référence incriminée est exactement la même que celle incluse dans divers exemples ServiceStack:

      ... 

J’ai essayé d’exécuter les exemples officiels ( Razor RockStar et EmailContacts ), mais je reçois également la même erreur lorsque je les lance.

Si je change la déclaration de la bibliothèque pour utiliser Version=2.0.0.0 place, je ne reçois aucune erreur.

Donc ma question est:

Les exemples sont-ils incorrects et doivent-ils également être déplacés vers la version 2.0.0.0 ou est-ce que je fais quelque chose de mal?

Ma configuration:

  • Windows 8.1 Pro x64
  • Visual Studio 2013 Pro
  • Ciblage d’applications pour .Net 4.5, x86
  • ServiceStack 4.0.15

Les sections Web.config de razor ajoutées par ServiceStack.Razor utilisent normalement la version de WebPages ASP.NET installée sur votre ordinateur, fournie avec l’installation et les mises à jour de VS.NET et se trouvant normalement sous:

 C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\ 

Ceci contient les différentes versions des pages Web ASP.NET installées, par exemple:

 v1.0\ v2.0\ 

Une autre option pour installer ASP.NET WebPages est via NuGet, à savoir:

 PM> Install-Package Microsoft.AspNet.WebPages 

Cela installera la dernière version de WebPages qui est actuellement à la v3.1.1 et signifie que vous devrez changer le numéro de version dans le fichier Web.config en Version = 3.0.0.0 .

Vous pouvez installer la version 1.0.0.0 spécifique des pages Web ASP.NET avec:

 PM> Install-Package Microsoft.AspNet.WebPages -Version 1.0.20105.408 

Seule section de configuration utilisée

ServiceStack n’utilise pas l’implémentation WebPages proprement dite, la configuration est principalement incluse pour garder VS.NET intelli-sense heureux, ainsi qu’un moyen de configurer les espaces de noms par défaut ajoutés aux pages Razor.

Bien que cela puisse également être fait dans le code en ajoutant des éléments à la collection Config.RazorNamespaces , leur ajout à la section config permet à VS.NET de les connaître afin que vous puissiez obtenir le bon sens, sinon cela n’aura aucun effet sur la exécution des pages au moment de l’exécution.