2010-11-10 14 views
7

Ich bekomme einen Fehler bei der Verwendung von Rasiermesserhelfern in einem MVC 3 Projekt (hat die cshtml Datei in app_code abgelegt). Sieht aus, als ob der generierte Code eine falsche Assemblyreferenz verwendet.Razor Helfer in MVC 3 RC

mit WebMatrix.Data;
mit WebMatrix.WebData;

Compiler sagt:

CS0246: Der Typ oder Namespace-Name ‚WebMatrix‘ konnte nicht gefunden werden (werden eine using-Direktive oder ein Assemblyverweis fehlt?)

sie in GAC Putting ändern nichts . Bekomme ich es nicht? Oder ist das ein Fehler? Irgendwelche Ideen?

Antwort

5

Sie müssen einen Verweis auf die DLL in Web.config hinzufügen.

+0

richtig! Danke. Warum habe ich es nicht berücksichtigt ... schon zu spät? – mbr

+0

BTW, wenn Sie nicht WebMatrix.Data und WebMatrix.WebData verwenden, dann wird Marcins Antwort es so machen, dass Sie nicht unnötige Binärdateien hinzufügen müssen. – Haacked

+0

Danke Phil ... mach weiter so. – mbr

5

mbr, wir sind uns des Problems bewusst und planen, es für RTM anzugehen. Sie könnten entweder Verweise auf die WebMatrix Baugruppen wie SLaks hinzufügen vorgeschlagen oder (und ich denke, das ist besser) einfach diese zwei Namespaces zu Ihrem Projekt hinzufügen, indem Sie den folgenden Code hinzu:

namespace WebMatrix.Data { internal class Ignore { } } 
namespace WebMatrix.WebData { internal class Ignore { } } 
+1

Dank marcind. – mbr

+1

"CS1527: Elemente, die in einem Namespace definiert sind, können nicht explizit als private, protected oder protected internal deklariert werden." Belassen Sie diese Klassendeklarationen von "privat" und es funktioniert gut. –

+0

Ah, noch besser. Ich mag es jetzt. –

0

Setzen Sie den Code in einer Datei (I Fixup.cs gewählt haben), wie dies im Verzeichnis App_Code:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace WebMatrix.Data { internal class Ignore { } } 
namespace WebMatrix.WebData { internal class Ignore { } } 
0

Sie brauchen nur WebMatrix.WebData.dll auf Ihre Referenzen hinzuzufügen.

0

Das Referenzieren der DLL-Dateien selbst kann schwierig sein, wenn Sie den genauen Speicherort der DLL-Dateien nicht kennen oder wenn die DLL-Dateien Abhängigkeiten haben. Verwenden Sie den Paket-Manager, um Abhängigkeiten für Sie automatisch zu referenzieren.

Öffnen Sie einfach Tools-> Library Package Manager-> Package Manager Console in Visual Studio & in Package Manager Console Geben Sie "Install-Paket WebMatrix.Data" und Sie sind fertig. Siehe diesen Link

http://www.nuget.org/packages/WebMatrix.Data/