Avatar billede a1a1 Novice
19. november 2004 - 14:32 Der er 8 kommentarer og
1 løsning

C# og VB.net i samme visualstudio.net 2003 PROJEKT

Er det muligt?

Jeg mener at have set et "hack" der kunne klare det

;o)
Avatar billede jepsen999 Nybegynder
19. november 2004 - 17:44 #1
Alle filer i et projekt kompileres med den samme kompiler - enten vbc.exe eller csc.exe. Derfor tror jeg det er temmeligt svært at få c# kompileren til at forstå vb og omvendt.
Avatar billede arne_v Ekspert
19. november 2004 - 21:17 #2
Det er i så fald da en restriktion i VS.NET - det er pærenemt command line.

A.vb:

Imports System

Class A
    Public Shared Sub Main(ByVal args As String())
        Dim b As B = New B
        B.Test
    End Sub
End Class

B.cs:

using System;

public class B
{
    public void Test()
    {
        Console.WriteLine("Det virker !");
    }
}

build.bat:

csc /t:module B.cs
vbc /t:exe /addmodule:B.netmodule A.vb
Avatar billede agertoft Nybegynder
20. november 2004 - 00:44 #3
Det er vel typisk sådan et sted, du kan gøre brug af en komponent? Kompiler din VB komponent og lav en reference til den i dit C# projekt eller omvendt.
Avatar billede a1a1 Novice
20. november 2004 - 02:59 #4
mit problem er at jeg bl.a. har nogle usercontrols (.ascx) i C#

og ja, det er et vs.net problem, det kan ikke håndtere forskellige typer i et projekt..

;o(
Avatar billede jepsen999 Nybegynder
20. november 2004 - 09:03 #5
OK, det ser ud til at du gøre det alligevel.
- Opret et c#-webprojekt1
- Tilføj din c#-usercontrol(UserControl1) til projektet
- Kompilér projektet

-Opret et nyt vb-webprojekt2
- Tilføj en reference til webprojekt1
-Kopier UserControl1.ascx til webprojekt2
- Marker webprojekt2 : Vælg project/Show all files i menuen.
- Find og slet den fil der hedder UserControl1.cs. (Tryk "+" ud for UserControl1.ascx)

På denne måde bruges koden der er kompilet ind i webprojekt1.
Avatar billede burningice Nybegynder
25. november 2004 - 11:39 #6
jepsen999>> så har du jo ikke koden i ET projekt, men i to projekter i samme solution.
Avatar billede jepsen999 Nybegynder
25. november 2004 - 20:00 #7
Ja enig, det er bøvlet at vedligeholde med koden i 2 projekter. Det er dog kun hvis man ændrer i aspx-filen og ikke codebehind at der skal ændres 2 steder.
Hvis a1 står med en færdig usercontrol som han ikke gider konvertere til c# mener jeg dog stadig at løsningen holder - og da det er et "hack" han efterlyser må man vel acceptere et kompromis ;)

Hvis det skal være i ET projekt kunne c# codebehind-filen også inkluderes i projektet med "build action" = "none".
Så kunne arne_v's løsning bruges til at kompilere codebehind-filen ind i assemblyen via en post-build-event. Men af en eller anden grund findes der ikke post-build-events på webprojekter...??

a1, lytter du stadig med?
Avatar billede a1a1 Novice
25. november 2004 - 20:41 #8
jeg mener at have set et "plugin" til VS der kunne klare det
Avatar billede a1a1 Novice
29. november 2004 - 10:49 #9
æv bæv...:o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester