web-dev-qa-db-fra.com

EF5 Démarrage d'un projet: erreur lors de l'exécution de la transformation: veuillez remplacer le jeton de remplacement '$ edmxInputFile $'

Je crée un projet de console dans VS2012 avec .Net4.5. Après cela, je "Ajouter", "Nouvel élément" au projet, et choisissez "EF 5.x DbContext Generator". Ensuite, après quelques secondes, le message d'erreur suivant apparaît dans l'onglet 'Liste d'erreurs':

Erreur 1 Exécution de la transformation: veuillez remplacer le jeton de remplacement "$ edmxInputFile $" par le nom réel du fichier .edmx à partir duquel vous souhaitez générer. C:\Projects\Tests\ConsoleAppEF5\ConsoleAppEF5\Model1.tt`

Comment puis-je réparer cela ?

Qu'est-ce que je rate ?

37
Gil

Vous devez d'abord créer un modèle edmx pour en générer automatiquement des POCO. Vous pouvez l'ajouter via le menu (Ajouter un nouvel élément -> ADO.NET Entity Data Model). Une fois le modèle créé, vous pouvez utiliser le générateur DbContext. Remplacez $ edmxInputFile $ par le nom de votre fichier edmx, puis enregistrez le fichier que vous modifiez (bien que VS 2012 doive le faire automatiquement).

46
eternity

Et dans un autre scénario, il s'agit apparemment d'un bogue connu: http://web.archive.org/web/20131203074519/http://connect.Microsoft.com/VisualStudio/feedback/details/498723/ado- net-entityobject-generator-error-list-bug

Donc, si vous ajoutez un générateur DbContext, puis le supprimez et que vous obtenez cette erreur, fermez et rouvrez le projet. Résolu pour moi.

40
Alex

Dans mon cas, j'ai ajouté par inadvertance le EF Db Context Generator au lieu de Entity Framework. Total PEBKAC mais je le poste ici car je suis sûr que je ne serai pas le seul.

J'ai remarqué que l'extension du fichier était TT car c'est un modèle de texte et non le EDMX que je voulais.

Si vous cherchez à ajouter une entité, ajoutez ADO.NET Entity Data ModelpasEF X.x DbContext Generator

8
workabyte

Dans mon cas, j'ai décidé que je voulais me débarrasser du générateur EF 5.x DbContext. J'ai eu cette erreur lorsque j'ai choisi de l'ajouter, mais j'ai ensuite supprimé "Model1.Context.tt" et "Model1.tt" après y avoir réfléchi. Malheureusement pour moi, je ne savais pas que ce n'était pas tout ce que j'avais à faire. Quand j'ai fait un autre "Build", j'ai eu l'erreur de l'OP.

Mes prochaines étapes: je suis allé à Model1.tt, effacé $edmxInputFile$ et l'a laissé comme une chaîne vide et a cliqué pour construire le projet. Cela m'a donné une erreur UnauthorizedException (ce qui est bien, je ne voulais pas qu'il modifie quoi que ce soit, de toute façon). Je voulais juste qu'il se débarrasse de l'erreur d'origine.

Ensuite, j'ai fait quelques fouilles et j'ai découvert que le fichier ".csproj" de mon projet avait été modifié avec ceci:

<ItemGroup>
    <Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
</ItemGroup>

Maintenant, je ne pense pas que cela GUID va être le même dans tous les cas d'erreur, ou même à chaque fois que quelqu'un ajoute le générateur EF 5.x DbContext. Mais si votre fichier .csproj (REMARQUE: ceci est différent de votre fichier .csproj.user) a été modifié (j'espère que c'est dans le contrôle de code source et vous pouvez le voir), vous devriez être en mesure de comprendre comment. J'ai supprimé cette section, j'ai fait une "construction", et me suis débarrassé de mes erreurs.

S'il n'est pas dans le contrôle de code source, vous pouvez toujours créer un projet factice et comparer votre fichier .csproj au fichier de ce projet, et faire des essais et des erreurs en supprimant tout ce qui est supplémentaire sur votre .csproj et en faisant une "construction" (enregistrement les choses dans le Bloc-notes, les remettre si cela ne résout pas votre erreur). Je sais que c'est une façon infernale de le faire, mais au moins vous ne perdrez pas de temps à refaire toute votre solution.

2
vapcguy