Mischen von C # & amp; VB im selben Projekt
Können Sie mischen vb-und c# - Dateien im selben Projekt für eine Klassenbibliothek? Gibt es irgendeine Einstellung, die es möglich macht?
Ich habe versucht, und keiner der intellisense funktioniert das ganz Recht, obwohl der hintergrund-compiler scheint zu behandeln, es gut genug (abgesehen von der Tatsache, dass ich, der hatte 2 Klassen im gleichen namespace mit dem selben Namen und es hat mich nicht beschweren).
Wir versuchen, zu konvertieren von VB zu C#, aber noch nicht fertig Umwandlung aller code. Ich habe einige neue code muss ich schreiben, aber nicht wirklich wollen, um ein neues Projekt nur für Sie.
Kommentar zu dem Problem
Warum schreibst du neuen code in VB, wenn Sie gerade fertig mit der Konvertierung zu C#?
Übrigens, ich dachte, es könnte möglich sein, ziehen Sie einen hybrid-Ansatz mit partiellen Klassen in zwei verschiedene Projekte, aber partials kann nicht span Baugruppen, so wird dies nicht funktionieren, entweder.
Dang, das war wohl mein Nächster Versuch.
Reparierte meinen post. Wir haben noch nicht fertig.
einer der Gründe, zu haben VB code vermischt ist, nutzen seine einzigartigen Eigenschaften, insbesondere die XML-Funktionen wenn Sie mit LINQ to XML zum Beispiel. Auf diese Weise anstatt zu schreiben 'von element in root.Elemente("Daten")' Sie nutzen könnten, VB dynamischen XML-syntax: 'element In der Wurzel.<Daten>'. Wenn Sie arbeiten viel mit XML-Dateien, die diese syntax kann sein, viel einfacher, mit zu arbeiten als C#'s
InformationsquelleAutor der Frage Wes P | 2009-08-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, das können Sie nicht. Eine Montage/Projekt (jedes Projekt kompiliert, 1 Montage-Regel) ist eine Sprache. Jedoch, Sie können mehrere Assemblys, und jeder kann codiert werden, in eine andere Sprache, da sind Sie alle zusammengestellt, um MSIL.
Es kompiliert fein und nicht meckern, weil ein VB.NET Projekt wird nur dann tatsächlich kompilieren .vb-Dateien und ein C# - Projekt werden nur tatsächlich kompilieren .cs-Dateien. Er ignorierte die anderen, daher hast du keine Fehler erhalten.
Edit: Wenn Sie hinzufügen ein .vb-Datei in ein C# - Projekt, wählen Sie die Datei im Solution Explorer-panel und achten Sie auf die Eigenschaften-panel, werden Sie feststellen, dass die Build Action 'Inhalt', nicht 'Kompilieren'. Er wird behandelt, als eine einfache text-Datei und nicht einmal bekommen, eingebettet in die kompilierte assembly als binäre Ressource.
Edit: Mit asp.net websites, die Sie hinzufügen können c# - web-Benutzer-Steuerelement vb.net website
InformationsquelleAutor der Antwort Joel B Fant
Naja, eigentlich habe ich geerbt ein Projekt, das vor einigen Jahren von einer Kollegin, die beschlossen hatten, zu mischen, VB und C#, webforms innerhalb des gleichen Projektes. Das klappte auch, aber ist weit entfernt von Spaß zu pflegen.
Habe ich beschlossen, dass der neue code sollte C# - Klassen und um Sie zu erhalten, um zu arbeiten, ich musste hinzufügen eine Ebene tiefer, die an der Zusammenstellung Teil des web.config
Die alle VB-code geht in einen Unterordner im Ordner App_Code genannten VB-und C# - code in die CS-Unterordner. Diese produzieren zwei .dll-Dateien. Es funktioniert, aber der code kompiliert ist, in der gleichen Reihenfolge wie aufgeführt in "codeSubDirectories" und deshalb ich.e-Schnittstellen sollte in den VB-Ordner, wenn verwendet, in C# und in VB.
Ich habe sowohl ein Verweis auf eine VB-und C# - compiler in
Das Projekt wird derzeit aktualisiert, um framework 3.5 und es funktioniert immer noch (aber immer noch keinen Spaß, Sie zu pflegen..)
InformationsquelleAutor der Antwort Lars Strange
Können Sie nicht mischen, vb und c# innerhalb des gleichen Projekts - wenn Sie bemerken, im visual studio Projekt-Dateien sind entweder .vbproj oder .csproj. Sie können in einer Lösung - 1 proj in vb und 1 in c#.
Sieht aus wie nach auf diesem können Sie möglicherweise verwenden Sie beide in einem web-Projekt in das App_Code-Verzeichnis:
http://pietschsoft.com/post/2006/03/30/ASPNET-20-Use-VBNET-and-C-within-the-App_Code-folder.aspx
InformationsquelleAutor der Antwort brendan
Könnte es möglich sein, mit einigen benutzerdefinierten MSBuild-Entwicklung. Die gelieferte .Ziele Kraft der Projekte, die einer einzigen Sprache - aber es gibt keine Laufzeit oder Werkzeuge Einschränkung, dies zu verhindern.
Sowohl die VB und CS-Compiler können die Ausgabe Module - die CLR-version .obj-Dateien. Mit dem assembly linker, können Sie die Module aus dem VB und CS-code und produzieren eine einzelne assembly.
Nicht, dass dies ein trival Aufwand, aber es würde wahrscheinlich funktionieren.
InformationsquelleAutor der Antwort Scott Weinstein
Exemplarische Vorgehensweise: Verwenden von Mehrere Programmiersprachen in einem Website-Projekt http://msdn.microsoft.com/en-us/library/ms366714.aspx
InformationsquelleAutor der Antwort gerryLowry
Überprüfen Sie heraus diesen link, das beschreibt das Problem und zeigt, wie die Kombination von VB und C# code in einem Projekt, in .NET 4.0
http://msdn.microsoft.com/en-us/library/t990ks23.aspx
InformationsquelleAutor der Antwort Kevin
Obwohl Visual Studio nicht unterstützt (Sie können tun, einige tricks und erhalten Sie MSBuild zum kompilieren, aber nicht innerhalb von Visual Studio), SharpDevelop tut. Sie können beide in der gleichen Lösung (solange Sie mit Visual Studio Professional und höher), so ist die einfachste Lösung, wenn Sie möchten, um mithilfe von Visual Studio ist, Sie zu trennen Ihre VB-code in ein anderes Projekt und es auf diese Weise zugreifen.
InformationsquelleAutor der Antwort Kris Erickson
Rechten Maustaste auf das Projekt. Wählen Sie Hinzufügen Asp.Net Ordner.
Unter Dem Ordner, erstellen Sie zwei Ordner namens VBCodeFiles und die Anderen CSCodeFiles
Im Web.Config fügen Sie ein neues element unter Zusammenstellung
Erstellen Sie jetzt eine cshtml-Seite.
Fügen Sie einen Verweis auf die VBCodeFiles.Namespace.MyClassName mit
Wo MyClassName ist ein Klasse Objekt, das gefunden wird in den namespace vor.
jetzt schreiben Sie das Objekt in razor mit einer cshtml-Datei.
Bitte beachten Sie, dass die directoryName="CSCodeFiles" ist redundant, wenn dies ist ein C# - Projekt und der directoryName="VBCodeFiles" ist redundant, wenn dies ist ein VB.Net Projekt.
InformationsquelleAutor der Antwort RickIsWright
Ja, das ist möglich.hinzufügen von c# - und vb.net Projekte in einer einzigen Lösung.
Schritt 1: Datei->Hinzufügen->Vorhandenes Projekt
Schritt 2: Projekt->Verweis Hinzufügen->dll-oder exe-Datei des Projekts, das u vor dem Hinzugefügt.
Schritt 3: In vb.net form, wo u wollen, verwenden Sie c# - forms->import namespace des Projekts.
InformationsquelleAutor der Antwort user6808128
Ich sehe nicht, wie können Sie sich zusammenstellen, ein Projekt, mit dem C# - compiler (oder der VB-compiler) und habe es nicht sträuben sich die falsche Sprache für den compiler.
Halten Sie Ihre C# - code in einem separaten Projekt aus VB-Projekt. Sie können diese Projekte in der gleichen Projektmappe.
InformationsquelleAutor der Antwort rein
Benötigen Sie ein Projekt pro Sprache. Ich bin mir ziemlich sicher, ich sah ein tool, verschmolz Baugruppen, wenn Sie feststellen, dass Werkzeug, das Sie sollten gut zu gehen. Wenn Sie müssen Sie beide Sprachen in der gleichen Klasse, Sie sollten in der Lage sein zu schreiben, die Hälfte davon in sagen VB.net und dann schreiben den rest in C# Erben der VB.net Klasse.
InformationsquelleAutor der Antwort svinto
Gefahr der echo-jede andere Antwort ist: Nein, können Sie nicht mischen Sie Sie in das gleiche Projekt.
Beiseite, wenn Sie gerade fertig mit der Konvertierung von VB zu C#, warum würden Sie schreiben, der neuen code in VB?
InformationsquelleAutor der Antwort Adam Robinson
Für .net 2.0, das funktioniert. Es TUT kompilieren Sie beide in das gleiche Projekt ist, wenn Sie erstellen Sie Unterverzeichnisse in der app-code mit der entsprechenden Sprachen-code ein. Als der noch, ich bin auf der Suche nach, ob diese Arbeit sollte in 3,5 oder nicht aber.
InformationsquelleAutor der Antwort mgbeers
Warum gehst du nicht einfach kompilieren Sie Ihre
VB
- code in eine Bibliothek(.dll
).Referenz es später in deinem code, und das ist es. Verwaltetdlls
enthaltenMSIL
zu denen sowohlc#
undvb
kompiliert werden.InformationsquelleAutor der Antwort Ajov
Wie schon andere gesagt haben, Sie können nicht beides in einem Projekt. Allerdings, wenn Sie nur ein kleines Stück von C# - oder VB-code, den Sie möchten, um in einem Projekt in der anderen Sprache, es gibt automatische Konvertierungs-tools. Sie sind nicht perfekt, aber Sie tun die meisten Dinge ziemlich gut. Auch, SharpDevelop hat ein Konvertierungsprogramm gebaut.
InformationsquelleAutor der Antwort Scott Whitlock
Nein, nicht in dem gleichen Projekt.aber Sie können diese in der gleichen Lösung.
obwohl Sie aufpassen müssen, dass Ihr code ist CLS-kompatibel. Das bedeutet, Sie müssen nicht verwendet haben, eine solche Funktionalität/Eigenschaft, die nicht verstehen, die von anderen Sprache. Zum Beispiel VB nicht verstehen unsigned ints.
InformationsquelleAutor der Antwort juhi
Ja, Sie können beide die Datei in web-Seite nur.Wenn das Projekt ist eine web-Anwendung wird es nicht zulassen, dass andere Art von Datei.
InformationsquelleAutor der Antwort Python