2010-08-24 5 views
0

J'essaie de faire fonctionner Nhaml pour un projet ASP.NET MVC 2. Le backend du projet est Mongo DB, en utilisant le NoRM driver. NoRM spécifie certains types personnalisés, en particulier ObjectID en référence à la colonne _id unique de Mongo.Références d'assemblage dans Nhaml

J'ai les vues Nhaml la compilation et la sortie de données à partir d'un modèle fortement typé, mais il étouffe le type ObjectID écrit en tant que tel:

%td= Html.ActionLink("Update", "Update", new { id=Model._id }) 

Plus précisément, le message d'erreur est:

c: \ Windows \ Temp \ a7lwemtp.0.cs (83,9): erreur CS0012: Le type 'Norm.ObjectId' est défini dans un assembly qui n'est pas référencé. Vous devez ajouter une référence à l'assembly 'Norm, Version = 1.0.0.0, Culture = neutre, PublicKeyToken = null'.

... qui semble obtenir assez simple, sauf que je toujours le même message d'erreur après avoir ajouté la référence de l'ensemble de la norme à la partie de configuration Nhaml de mon fichier web.config:

<nhaml autoRecompile="true" templateCompiler="CSharp3" encodeHtml="false" useTabs="false" indentSize="2"> 
    <assemblies> 
    <add assembly="Norm" Version="1.0.0.0" Culture="neutral" PublicKeyToken="null"/> 
    <add assembly="MyApp"/> 
    </assemblies> 
    <namespaces> 
    <add namespace="MyApp"/> 
    <add namespace="MyApp.Controllers"/> 
    <add namespace="MyApp.Models"/> 
    <add namespace="Norm"/> 
    <add namespace="Norm.BSON.DbTypes"/> 
    </namespaces> 
</nhaml> 

Je préfère prévu que pour résoudre le problème. Ai-je manqué quelque chose d'évident, ou complètement mal compris la référence de l'assemblée que Nhaml recherche?

+0

quelle version de nhaml utilisez-vous? – Simon

Répondre

0

Juste au cas où vous sont manque quelque chose évidente ou malentendu tout à fait la référence assemblée thang ...

CS0012 est le compilateur C# demander une référence à la dll ou un projet qui contient Norm.ObjectId. L'ajout d'éléments à un fichier de configuration ne le résoudra pas, vous devez vous assurer que votre projet MVC 2 contient une référence à la DLL NoRM intégrée ou au projet NoRM si vous avez ajouté le code source à votre solution.

http://msdn.microsoft.com/en-us/library/x0dz51e1%28VS.90%29.aspx

+0

Ensuite, je suis confus, parce que j'ai la DLL NoRM référencée dans VS. Et le pilote NoRM fonctionne dans le reste de mon projet. Hmm. – DanielMason