programing

같은 프로젝트에서 C#과 VB의 혼재

minimums 2023. 4. 8. 08:19
반응형

같은 프로젝트에서 C#과 VB의 혼재

클래스 라이브러리의 동일한 프로젝트에서 vb 파일과 c# 파일을 혼합할 수 있습니까?그것을 가능하게 하는 어떤 설정이 있나요?

시도해보니 어느 인텔리센스도 제대로 작동하지 않습니다만, 백그라운드 컴파일러로 충분히 잘 처리되는 것 같습니다(같은 이름의 두 개의 클래스가 같은 네임스페이스에 있고 불평하지 않았습니다).

VB에서 C#으로 변환하려고 하는데 아직 모든 코드 변환이 끝나지 않았습니다.작성해야 할 새로운 코드가 몇 개 있지만, 그것만을 위해 새로운 프로젝트를 만들고 싶지는 않았습니다.

아니, 그럴 수 없다.어셈블리/프로젝트(각 프로젝트는 보통 1개의 어셈블리로 컴파일)는 하나의 언어여야 합니다.다만, 복수의 어셈블리를 사용할 수 있습니다.또한 이들 어셈블리는 모두 CIL로 컴파일 되어 있기 때문에 각각 다른 언어로 코드화할 수 있습니다.

그것은 VB이기 때문에 잘 편집되었고 불평하지 않았다.NET 프로젝트는 실제로 .vb 파일만 컴파일하고 C# 프로젝트는 실제로 .cs 파일만 컴파일합니다.다른 것을 무시하고 있었기 때문에, 에러는 수신되지 않았습니다.

편집: C# 프로젝트에 .vb 파일을 추가하고 Solution Explorer 패널에서 파일을 선택한 후 Properties 패널을 보면 Build Action이 Compile이 아닌 Content임을 알 수 있습니다.이 파일은 단순한 텍스트 파일로 처리되며 컴파일된 어셈블리에 바이너리 리소스로 내장되지도 않습니다.

편집: asp.net 웹사이트에서는 c# 웹 사용자 컨트롤을 vb.net 웹사이트에 추가할 수 있습니다.

실은 몇 년 전에 같은 프로젝트에 VB와 C# 웹폼을 혼재시키기로 결정한 동료로부터 프로젝트를 상속받았습니다.그것은 효과가 있었지만 유지하기에는 재미와는 거리가 멀다.

새로운 코드가 C# 클래스여야 한다고 판단하고 동작시키기 위해 web.config 컴파일 부분에 서브노드를 추가해야 했습니다.

        <codeSubDirectories>
            <add directoryName="VB"/>
            <add directoryName="CS"/>
        </codeSubDirectories>

모든 VB 코드는 App_Code의 VB라는 서브폴더에, C# 코드는 CS 서브폴더에 들어갑니다.그러면 2개의 .dll 파일이 생성됩니다.동작합니다만, 코드는 「codeSubDirectories」에 기재되어 있는 것과 같은 순서로 컴파일 되어 있기 때문에, C# 와 VB 의 양쪽 모두에서 사용되고 있는 경우는, 인터페이스가 VB 폴더에 있을 필요가 있습니다.

에 VB와 C# 컴파일러를 모두 참조하고 있습니다.

<system.codedom>
    <compilers>

이 프로젝트는 현재 프레임워크 3.5로 업데이트되었으며 여전히 작동합니다(그러나 유지관리는 아직 재미가 없습니다).

vb와 c#을 같은 프로젝트 내에서 혼재시킬 수 없습니다.visual studio에서 프로젝트 파일이 .vbproj 또는 .csproj 중 하나입니다.솔루션 내에서 proj를 vb에 1개, c#에 1개 설정할 수 있습니다.

이에 따라 App_Code 디렉토리의 웹 프로젝트에서 둘 다 사용할 수 있습니다.

http://pietschsoft.com/post/2006/03/30/ASPNET-20-Use-VBNET-and-C-within-the-App_Code-folder.aspx

일부 사용자 지정 MSBuild 개발로 가능할 수 있습니다.제공된 .targets는 프로젝트를 강제로 단일 언어로 만들지만 실행 시간이나 도구에 대한 제한은 없습니다.

VB 컴파일러와 CS 컴파일러 모두 모듈에 출력할 수 있습니다(CLR 버전의 .obj 파일).어셈블리 링커를 사용하면 VB 및 CS 코드에서 모듈을 가져와 단일 어셈블리를 만들 수 있습니다.

이게 3가지 노력이 될 거라는 건 아니지만, 아마 효과가 있을 거야.

설명: 웹 사이트 프로젝트 http://msdn.microsoft.com/en-us/library/ms366714.aspx에서 여러 프로그래밍 언어 사용

기본적으로 App_Code 폴더에서는 여러 프로그래밍 언어를 사용할 수 없습니다.그러나사이트 프로젝트에서 폴더 구조 및 구성 설정을 수정하여 Visual Basic 및 C#과 같은 여러 프로그래밍 언어를 지원할 수 있습니다.그러면 ASP가 허용됩니다.NET - 언어별로 하나씩 여러 어셈블리를 만듭니다.자세한 내용은 ASP의 공유 코드 폴더를 참조하십시오.NET Web 프로젝트개발자는 일반적으로 웹 응용 프로그램에 여러 프로그래밍 언어를 포함하여 독립적으로 운영되며 서로 다른 프로그래밍 언어를 선호하는 여러 개발 팀을 지원합니다.

네, 가능합니다.c#과 vb.net은 하나의 솔루션으로 프로젝트합니다.

순서 1: 파일 -> 추가 -> 기존 프로젝트

스텝 2: 프로젝트 -> 참조 추가 -> 이전에 추가한 프로젝트의 dll 또는 exe.

스텝 3: c# forms-> import namespace of project를 사용하는 vb.net 형식으로 입력합니다.

Visual Studio는 이를 지원하지 않지만( 가지 속임수를 써서 MSBuild가 Visual Studio 내에서 컴파일할 수는 없지만) Sharp Develope는 지원합니다.Visual Studio Professional 이상을 실행하는 한 두 가지 솔루션을 모두 동일한 솔루션으로 사용할 수 있으므로 Visual Studio를 계속 사용하려면 VB 코드를 다른 프로젝트로 분리하여 액세스하는 것이 가장 쉬운 방법입니다.

왜 그냥 편집하지 않는거죠?VB로 입력하다.dll나중에 코드로부터 참조해 주세요. 대상 「」입니다.dllsMSIL 다 거기에c# ★★★★★★★★★★★★★★★★★」vb컴파일 됩니다.

프로젝트를 마우스 오른쪽 버튼으로 클릭합니다.[ Add Asp ]를 선택합니다.넷 폴더[폴더(The Folder)]아래에 [VBCodeFiles]라는 이름의 폴더와 [Other CSCodeFiles In Web]라는 이름의 폴더를 만듭니다.컴파일 아래에 새 요소를 추가합니다.

<compilation debug="true" targetFramework="4.5.1">
      <codeSubDirectories>
        <add directoryName="VBCodeFiles"/>
        <add directoryName="CSCodeFiles"/>
      </codeSubDirectories>
</compilation>

이제 Cshtml 페이지를 만듭니다.VBCodeFiles에 대한 참조를 추가합니다.네임스페이스MyClassName 사용

@using DMH.VBCodeFiles.Utils.RCMHD
@model MyClassname

여기서 MyClassName은 위의 네임스페이스에 있는 클래스 개체입니다.이제 cshtml 파일을 사용하여 면도기로 물체를 적습니다.

<p>@Model.FirstName</p>

directoryName="을 참조하십시오.CSCodeFiles'는 C# 프로젝트이고 directoryName=인 경우 용장성이 있습니다.VBCodeFiles'는 VB일 경우 용장됩니다.넷프로젝트

C# 컴파일러(또는 VB 컴파일러)를 사용하여 프로젝트를 컴파일하고 컴파일러가 잘못된 언어로 정지하지 않도록 하는 방법을 알 수 없습니다.

C# 코드는 VB 프로젝트와는 다른 프로젝트에 보관합니다.이러한 프로젝트를 동일한 솔루션에 포함할 수 있습니다.

언어당 하나의 프로젝트가 필요합니다.조립품을 병합한 도구를 본 적이 있습니다. 그 도구를 찾으면 바로 사용할 수 있습니다.같은 클래스에서 양쪽 언어를 사용할 필요가 있는 경우, 예를 들어 VB.net에 그 절반을 기입하고 나머지는 VB.net 클래스를 상속하여 C#에 기입할 수 있습니다.

다른 모든 응답에 에코가 발생할 위험이 있습니다.아니오.이러한 응답은 같은 프로젝트에서 혼재시킬 수 없습니다.

VB를 C#으로 변환한 지 얼마 안 됐는데 왜 VB로 새로운 코드를 작성합니까?

.net 2.0에서는 이 기능이 동작합니다.관련 언어 코드로 앱 코드의 하위 디렉토리를 만들면 동일한 프로젝트에 컴파일됩니다.아직까지는 3.5로 동작할 수 있을지 어떨지 생각하고 있습니다.

다른 사람들이 말했듯이, 두 가지를 모두 한 프로젝트에 넣을 수는 없습니다.단, 다른 언어의 프로젝트에 포함시키고 싶은 C# 또는 VB 코드의 작은 부분만 있으면 자동 변환 툴이 있습니다.완벽하진 않지만, 대부분의 일을 꽤 잘해요.또한 Sharp Develope에는 변환 유틸리티가 내장되어 있습니다.

아니요, 같은 프로젝트에서는 아닙니다.동일한 솔루션에서 사용할 수 있습니다.다만, 코드가 CLS에 준거하고 있는 것에 주의할 필요가 있습니다.즉, 다른 언어로는 이해할 수 없는 기능/기능을 사용해서는 안 됩니다.예를 들어, VB는 부호 없는 int를 이해하지 않습니다.

이 시나리오에서는 단일 VB입니다.NET 프로젝트(Windows Desktop 애플리케이션)를 단일 솔루션으로 제공합니다.단, 부호 있는 정수 및 XML 리터럴과 같은 C# 기능과 VB의 문자열 기능을 활용하고 싶었습니다.NET. 기능에 따라 런타임에 코드 파일을 작성하고 각각의 Rosalyn 컴파일러(VB/CS)를 사용하여 DLL로 컴파일하여 현재 어셈블리에 동적으로 로드합니다.물론 동적 DLL의 디링크, 언로드, 새로고침, 이름 붙이기 등의 작업을 해야 했습니다.메모리 관리에서는 경합을 피하기 위해 동적 GUID를 주로 사용했습니다.앱 사용자가 데스크톱 앱에서 DB에 연결하고, SQL 쿼리를 작성하고, 연결을 LINQ 연결로 변환하고, LINQ 쿼리를 작성할 수 있는 경우 모두 DLL로 컴파일하여 현재 어셈블리에 연결해야 합니다.

예, 두 파일 모두 웹 사이트에서만 추가할 수 있습니다.프로젝트가 웹 응용 프로그램인 경우 다른 유형의 파일을 허용하지 않습니다.

언급URL : https://stackoverflow.com/questions/1278024/mixing-c-sharp-vb-in-the-same-project

반응형