Je travaille sur une application Asp.Net MVC 4 dans laquelle j'utilise SignalR 2.0.1 et que je mappe à l'aide de la classe Owin Startup. Tout a bien fonctionné au début.
Soudainement, lorsque j'ai essayé de reconstruire mon application, il m'a été répondu que le type est un espace de noms IAppbuilder
introuvable.
Voici mon cours de démarrage
using Microsoft.Owin;
using Owin;
using WhiteBoardApp;
namespace WhiteBoardApp
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
J'ai aussi installé le paquet Owin
, et pour certaines raisons, je ne pouvais pas trouver la classe Owin Startup, j'ai donc ajouté une classe normale et inclus toutes les références nécessaires. Puis-je savoir où je fais une erreur
Essayez d’utiliser Package Manage Console et faites
Update-Package Owin -Reinstall
J'avais un problème similaire. Mais au lieu de cela Owin, le problème était à l’origine de Microsoft.Owin, évidemment
Update-Package Owin -Reinstall
Ne fonctionnait pas, ni Update-Package Owin
MAIS
Install-Package Microsoft.Owin
a bien fonctionné pour moi, merci.
L'interface IAppBuilder se trouve sous le paquet Owin. Ajoutez simplement une référence dans votre fichier de classe:
en utilisant Owin;
Et reconstruire. Votre projet va le prendre.
Je ne sais pas pourquoi VS ne l'a pas compris, mais ce n'est pas le cas. Une fois que j'ai ajouté cette référence à mon projet, tout s'est mis en place.
J'ai rencontré le même problème lors de la construction de mon projet. Voici les étapes qui ont aidé à résoudre mon problème:
Solution Explorer
et cherchez votre projetReferences
; Vous devriez voir des avertissements sur la référence problématiqueReferences
et ouvrez Manage NuGet Packages
Microsoft.Owin
; Après le chargement, il indique qu’il est déjà installé (c’est le cas, mais il n’a pas été installé correctement. Vérification des propriétés> version à l’étape 2: 0.0.0.0
)Force uninstall, even if there are dependencies on it
Impossible d'installer
Microsoft.Web.Infrastructure
car il existe déjà dans le dossier packages. Reculer...
Microsoft.Web.Infrastructure
Voici les alternatives que j'ai lues sur le point de résoudre ce genre de problème.
Bonne chance.
Mon Visual Studio 2013 pour une raison quelconque n'a pas réalisé que les chemins de références existaient. Le point d'exclamation jaune devant les références était affiché pour tous les packages ajoutés. J'ai vérifié ../packages/ mais tous les fichiers existaient, j'ai aussi ouvert le fichier .csproj qui référençait les chemins corrects.
La fermeture et l'ouverture de la solution ont généré beaucoup d'erreurs et n'ont pas pu charger les projets inclus dans la solution.
Le redémarrage de Visual Studio 2013 a sauvé la journée pour une raison inexpliquée.
Mon utilisation suivante de l'équivalent en F # pose le problème de cacher IAppBuilder. Il s'avère que la clause Owin était interprétée comme une référence System.Web.Http.Owin incomplète, même si le fichier Owin.dll fournissant l'espace de noms Owin était référencé.
open System.Net.Http
open System.Web.Http
open Microsoft.Owin
open Owin
Le problème a été résolu en réorganisant les utilisations comme suit:
open Microsoft.Owin
open Owin
open System.Net.Http
open System.Web.Http
... cela est peut-être un bogue propre au compilateur F # et les conflits de noms sont mieux gérés en C # et ailleurs.
Dans mon cas, j'avais déplacé les dossiers du projet et l'emplacement du fichier de solution vs (.sln). Une fois que j'ai eu fini de rajouter les projets, il y avait un dossier de packages au niveau de la solution et il en restait un dans un sous-dossier de projet. De cette façon, dans ce projet, les liens de dossier de package relatifs dans le fichier .csproj se sont égarés.
La réinstallation ou d’autres astuces concernant le gestionnaire de paquets Nuget dans ce fil de discussion ont été utiles. J'ai remarqué qu'après avoir réinstallé quelques paquets, dans le code source de mon git diff, le chemin du dossier des paquets avait été modifié dans le fichier csproj.
Avant
<HintPath>packages\Microsoft.Owin.4.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
Après
<HintPath>..\packages\Microsoft.Owin.4.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
Donc, si vous exécutez le même problème et que vous avez beaucoup de packages de nuget, il sera peut-être plus facile de fermer toute la solution, ouvrez le ou les fichiers csproj dans un éditeur de texte tel que vscode et corrigez les liens relatifs avec search and replace . Ensuite, enregistrez, fermez, rouvrez la solution dans le VS et restaurez les paquets Nuget. Cela devrait faire l'affaire. (Dans tous les cas, vous devez supprimer le dossier des packages locaux au niveau du projet, afin que le projet échoue réellement s'il ne récupère pas les packages appropriés.)