Visual Studio 컴파일 오류“프로세서 아키텍처 간 불일치”를 어떻게 수정합니까?


458

Visual Studio 2010에서 프로젝트 구성을 처음 사용했지만 약간의 연구를 수행했지만 여전히이 문제를 파악할 수는 없습니다. C # DLL을 참조하는 C ++ DLL이 포함 된 Visual Studio 솔루션이 있습니다. C # DLL은 다른 일부 DLL을 참조하며, 일부는 프로젝트 내 및 일부는 외부 DLL입니다. C ++ DLL을 컴파일하려고하면 다음과 같은 경고 메시지가 나타납니다.

경고 MSB3270 : "MSIL"빌드중인 프로젝트의 프로세서 아키텍처와 "[internal C # dll]", "x86"참조의 프로세서 아키텍처간에 불일치가있었습니다.

내 아키텍처를 정렬하기 위해 Configuration Manager로 이동하라는 메시지가 표시됩니다. C # DLL은 플랫폼 대상 x86으로 설정됩니다. 이것을 Any CPU와 같은 다른 것으로 변경하려고 하면 의존 하는 외부 DLL 중 하나에 플랫폼 대상 x86이 있기 때문에 불평 합니다.

Configuration Manager를 보면 C # DLL의 플랫폼이 x86으로, C ++ 프로젝트의 경우 Win32로 표시됩니다. 이것은 올바른 설정처럼 보입니다. 확실히 C ++ 프로젝트의 프로젝트가 x64로 설정된 플랫폼을 갖기를 원하지 않습니다.이 옵션은 다른 옵션입니다.

내가 여기서 뭘 잘못하고 있니?


특히 CPU로 변경할 때 불만 사항은 무엇입니까?
lordcheeto

2
정보에 대한 충분한 제안이 없지만 솔루션-> 프로젝트 빌드 순서를 마우스 오른쪽 버튼으로 클릭하고 C # 프로젝트가 C ++ 프로젝트보다 먼저 빌드되는지 확인하십시오. 그렇지 않은 경우 종속성 탭으로 이동하여 VS에 C ++ 프로젝트가 C # 프로젝트에 의존한다는 것을 알립니다.
lordcheeto

2
Visual Studio는 다시이 문제에 빠져 있습니다. 화면 상단의 플랫폼에 x64가 표시되지만 경고는 빌드중인 프로젝트가 "MSIL"이라는 경고입니다. 그래서 Visual Studio는 사과를 사용하지 않을 때 사과와 오렌지가 일치하지 않는다고 말합니다. Visual Stupido로 이름을 바꿀 수 있습니까?
Paul McCarthy

내가 아는 한 Visual Studio의 버그입니다. 플랫폼 대상으로 x64를 선택하고 프로젝트가 MSIL을 위해 빌드되고 있음을 알려줍니다.
Paul McCarthy

짧은 대답은 프로젝트에 x86 또는 x64에 대한 종속성이 있으면 모든 CPU (순수 .NET 응용 프로그램에만 해당)를 사용할 수 없다는 것입니다. 따라서 모든 CPU가 아닌 x64 또는 x32를 빌드해야합니다. 이것은 Dave의 답변
zar

답변:


512

이 경고는 새로운 Visual Studio 11 Beta 및 .NET 4.5에서 도입 된 것으로 보이지만 이전에는 가능했을 것으로 생각됩니다.

첫째, 정말 경고 일뿐입니다. x86 의존성을 다루는 경우 아무것도 아프지 않아야합니다. Microsoft는 프로젝트가 "Any CPU"와 호환 가능하지만 x86 또는 x64 인 .dll 어셈블리 또는 프로젝트에 종속되어 있다고 말할 때 경고하려고합니다. x86 종속성이 있으므로 기술적으로 프로젝트는 "모든 CPU"와 호환되지 않습니다. 경고를 없애려면 실제로 프로젝트를 "Any CPU"에서 "x86"으로 변경해야합니다. 이 작업은 매우 쉽습니다. 단계는 다음과 같습니다.

  1. Build | Configuration Manager 메뉴 항목으로 이동하십시오.
  2. 목록에서 프로젝트를 찾으십시오. 플랫폼 아래에 "모든 CPU"라고 표시됩니다.
  3. 드롭 다운에서 "모든 CPU"옵션을 선택한 다음 <New..>
  4. 해당 대화 상자의 "New Platform"드롭 다운에서 x86을 선택하고 "Copy settings from"드롭 다운에서 "Any CPU"가 선택되어 있는지 확인하십시오.
  5. 확인을 누르십시오
  6. 디버그 및 릴리스 구성 모두에 대해 x86을 선택하려고합니다.

이렇게하면 경고가 사라지고 어셈블리 또는 프로젝트가 더 이상 "모든 CPU"와 호환되지 않지만 이제 x86에만 해당됩니다. x64 종속성이있는 64 비트 프로젝트를 빌드하는 경우에도 적용됩니다. 대신 x64를 선택하면됩니다.

다른 참고로, 프로젝트가 순수한 .NET 프로젝트 인 경우 일반적으로 "모든 CPU"와 호환 될 수 있습니다. 이 문제는 특정 프로세서 아키텍처를 대상으로하는 종속성 (타사 dll 또는 자체 C ++ 관리 프로젝트)을 도입 한 경우에만 발생합니다.


3
방금 Visual Studio 2012의 RTW를 설치하고 기존 2010 솔루션을 열고 동일한 경고가 표시되기 시작하여 RTW에 여전히 존재하는 것입니다.
토드 톰슨

4
즉, David의 대답이 맞다고 생각합니다.이 경고는 앱이 실제로 "AnyCPU"가 아니라는 것을 알려주므로 결국 잘못된 아키텍처에 배포 할 때 문제가 발생할 수 있습니다.
토드 톰슨

6
그것은 아주 잘 다칠 수 있습니다. 모든 CPU exe는 64 비트 OS에서 x64로로드되며 x86 dll을로드 할 수 없습니다. 따라서 특정 플랫폼에 의존하는 경우 실제로 플랫폼을 올바르게 설정해야합니다.
야 우르

1
VS C # 2010 Express에서 빌드 메뉴가없는 것 같습니다. 어떻게해야합니까? 나는 그들이 물건을 숨기지 않기를 바랍니다.
Xonatron

1
Visual Studio 2010 Express에서 빌드 메뉴를 활성화하는 방법을 찾았습니다. 도구 메뉴-> 설정-> '전문가 설정'선택
Xonatron

144

이것은 매우 완고한 경고이며 유효한 경고이지만 타사 구성 요소 사용 및 기타 이유로 인해 해결할 수없는 경우가 있습니다. 내 프로젝트 플랫폼이 AnyCPU이고 AMD64 용으로 작성된 MS 라이브러리를 참조하기 때문에 경고가 있다는 것을 제외하고는 비슷한 문제가 있습니다. 이것은 Visual Studio 2010에 있으며 VS2012 및 .Net 4.5를 설치하여 소개 된 것으로 보입니다.

MS 라이브러리를 변경할 수 없으므로 참조하고 있으며 대상 배포 환경이 64 비트 일뿐 이므로이 문제를 무시할 수 있습니다.

경고는 어떻습니까? Microsoft는 Connect 보고서 에 대한 응답으로 경고를 비활성화하는 옵션 중 하나 를 게시했습니다 . 솔루션 아키텍처에 대해 잘 알고 있으며 배포 대상을 완전히 이해하고 개발 환경 외부에서는 실제로 문제가되지 않는다는 것을 알고 있어야합니다.

프로젝트 파일을 편집하고이 속성 그룹과 설정을 추가하여 경고를 비활성화 할 수 있습니다.

<PropertyGroup>
  <ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
</PropertyGroup>

1
이 솔루션에 대한 다른 공식 MS 참조는 Microsoft .NET Framework 4.5 RC Readme 파일에 있습니다. 이상하게도 RTM Readme 파일에서 제거되었습니다.
JohnC

4
이것은 작동하지만 경고의 변형에는 해당되지 않습니다. "참조 된 어셈블리 ... 응용 프로그램과 다른 프로세서를 대상으로합니다." 이 경고에 대해 비슷한 설정이 있다면 좋을까요?
Jimmy

6
"내 프로젝트 플랫폼은 AnyCPU이고 AMD64 용으로 작성된 MS 라이브러리를 참조하고 있습니다."이것은 잘못입니다. 대상 배포는 항상 64 비트이므로 플랫폼을 x64로 설정할 수 있으므로 64 비트 가정이 위반되는 경우보다 적절한 오류가 발생하고 경고도 방지 할 수 있습니다.
Ben Voigt

2
@BenVoigt 이론상 좋은 아이디어이지만 x86 프로세스 인 VS는 응용 프로그램이 64 비트 일지라도 Windows Forms Designer와 같은 작업을 실행하려면 x86 빌드의 컨트롤이 필요합니다. 잘못된 "Any CPU"빌드를 사용하는 것은 유효하지만 불행한 이유입니다.
jrh

1
@jrh : 그런 다음 DLL 프로젝트에서 GUI를 넣고 빌드 것을 anycpu를한다. EXE는 기본 종속성에 맞게 올바른 아키텍처로 표시되어야합니다. GUI와 로직을 적절히 분리하는 것은 먼 길을가집니다 (하지만 네이티브 코드가 GUI의 일부를 렌더링하는 경우와 같이 여전히 한계가 있지만 디자이너 지원은 두 프로젝트 모두에 대한 전체 프로젝트를 빌드하지 않는 한 손실 된 원인입니다) x86 and x64)
Ben Voigt

61

일반적으로 "열린 DLL, 닫힌 EXE"는 다음과 같습니다.

  • EXE 는 x86 또는 x64를 지정하여 OS를 대상으로합니다.
  • DLL 은 열린 상태 (즉, AnyCPU)로 유지되므로 32 비트 또는 64 비트 프로세스 내에서 인스턴스화 할 수 있습니다.

EXE를 AnyCPU로 빌드 할 때 OS에 사용할 프로세스 비트 비트에 대한 결정을 연기하면 EXE가 원하는대로 JIT됩니다. 즉, x64 OS는 64 비트 프로세스를 만들고 x86 OS는 32 비트 프로세스를 만듭니다.

DLL을 AnyCPU로 빌드하면 두 프로세스와 호환됩니다.

조립품 로딩의 미묘함에 대한 자세한 내용은 여기를 참조 하십시오 . 요약 내용은 다음과 같습니다.

  • AnyCPU – 호출 프로세스에 따라 x64 또는 x86 어셈블리로로드
  • x86 – x86 어셈블리로로드합니다. x64 프로세스에서로드되지 않습니다
  • x64 – x64 어셈블리로로드합니다. x86 프로세스에서로드되지 않습니다

4
이 규칙은 나에게 의미가 있습니다. 그러나 다음 상황을 고려하십시오. NetA.dll에 의해 사용되는 Native.dll (x64) (App1.exe (x64)에 의해 사용되는 NetB.dll (Any CPU)에 의해 사용됨). 여기에는 실제 문제가 없지만 NetA.dll을 컴파일하면 경고가 표시됩니다. 이 어셈블리는 Native.dll에 직접 의존하므로 x64로 표시 할 수도 있습니다. 그러나 NetB.dll을 컴파일하면 불평합니다. NetB.dll을 "Any CPU"로 유지하려고합니다. 왜냐하면 다른 순수한 닷넷 응용 프로그램에서 사용되는 일반적인 어셈블리이기 때문입니다. 내 유일한 선택은 경고를 억제 / 무시하는 것입니다. 예?
Steve Robbins

2
Native.dll에 대한 종속성으로 인해 경고를 억제할지 여부에 관계없이 전체 앱 / 조립 계통은 이제 x64입니다. 시나리오에서 억제가 작동하는 동안 나중에 이상한 상황이 발생할 수 있습니다. 예를 들어, 1) 어셈블리 NetB는 Nativex64가로드되지 않는 x86 환경에서 사용되거나 2) 고객이 x86 버전의 App1.exe를 원하고 NetB가 CPU로 표시되어 있기 때문에 행복하게 컴파일됩니다. 스택의 상단에 Nativex64가로드되지 않습니다
구스타보 모리에게

Gustavo의 규칙은 좋은 원칙이지만 프로젝트가 규칙을 따르지 않은 타사 어셈블리 (AnyCPU가 아닌 x86 임)에 이미 종속되어 있으므로이 질문에서 특정 문제에 사용할 수 없습니다. 따라서 의존성이 존재하는 한 전체 프로젝트 체인은 x86을 목표로해야합니다.
David Burg

23

C # DLL은 플랫폼 대상 x86으로 설정됩니다.

어떤 종류의 문제인지, DLL은 실제로 프로세스의 비트가 무엇인지 선택할 수 없습니다. 그것은 EXE 프로젝트에 의해 완전히 결정됩니다.로드되는 첫 번째 어셈블리이므로 플랫폼 대상 설정이 프로세스의 비트 수를 세고 설정합니다.

DLL은 선택의 여지가 없으며 프로세스 비트와 호환되어야합니다. 그렇지 않으면 코드에서 사용하려고 할 때 BadImageFormatException과 함께 큰 Kaboom이 발생합니다.

따라서 DLL에 대한 올바른 선택은 AnyCPU이므로 어느 쪽이든 작동합니다. C #을 DLL에 대한 이해의 그 차종의 많은, 그들은 일 중 하나의 방법을. 그러나 C ++ / CLI 혼합 모드 DLL이 아니라 프로세스가 32 비트 모드에서 실행될 때만 잘 작동 할 수있는 관리되지 않는 코드가 포함되어 있습니다. 빌드 시스템이 이에 대한 경고를 생성하도록 할 수 있습니다 . 정확히 당신이 얻은 것입니다. 경고 만해도 제대로 빌드됩니다.

문제를 해결하십시오. EXE 프로젝트의 플랫폼 대상을 x86으로 설정하면 다른 설정에서는 작동하지 않습니다. 그리고 모든 DLL 프로젝트를 AnyCPU에 보관하십시오.


1
그래서, 명확하게하기 위해 : 나는 EXE를 구축하지 않고, 다른 사람의 EXE와 함께 실행할 DLL을 구축하고 있습니다. C # DLL의 플랫폼 대상을 모든 CPU로 변경해도 경고가 제거되지 않습니다. 이것이 connect.microsoft.com/VisualStudio/feedback/details/728901/ 의 경우인지 궁금합니다 . 경고 자체를 무시하지만 실제로 EXE는 C # DLL은로드 할 수 있지만 C ++ DLL은로드 할 수 없습니다. 이것이 실제 문제라고 생각합니다.
Paul Eastlund

실제로 VS2010을 사용하고 있습니까? C ++ / CLI DLL을로드 할 수 없다는 것도 명확하지 않았습니다. 진단이란 무엇입니까? 이 필수 정보로 질문을 업데이트하십시오.
Hans Passant

연결이 100 % 확실하지 않기 때문에로드 실패에 대해 게시하지 않았으며 추가 디버깅에서는 그렇지 않습니다. VS2010을 사용하고 있습니다. 질문 텍스트가 업데이트되었습니다. 혼란을 드려 죄송합니다
Paul Eastlund

1
DLL로드와 관련된 오류 또는 예외를 문서화하지 않았습니다. 내가 아는 바를 말하지 않으면 도와 드릴 수 없습니다. 행운을 빕니다.
Hans Passant

5

나는 내가 한 것과 같은 경고를 받고 있었다 :

  1. 프로젝트를 내리다
  2. 프로젝트 속성 편집 (예 : .csproj)
  3. 다음 태그를 추가하십시오.

    <PropertyGroup>
        <ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
            None
        </ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
    </PropertyGroup>
  4. 프로젝트를 다시로드


2
이것은 문제를 해결하지 못합니다. 특정 프로젝트에 대한 경고를 비활성화합니다. 그러나 어떤 경우에는 올바른 솔루션이라고 생각합니다. 감사!
Tiny

4

나는 오늘이 문제가 있었고 Visual Studio에서 건물 구성을 보는 것은 도움이되지 않았습니다. 빌드되지 않은 프로젝트와 참조 된 프로젝트 모두에 대한 모든 CPU를 보여 주었기 때문입니다.

그런 다음 참조 된 프로젝트의 csproj를 살펴보고 이것을 찾았습니다.

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x64</PlatformTarget>

어떻게 든이 PlatformTarget이 구성 변경 중에 추가되어 IDE가 그것을 보지 못했습니다.

참조 된 프로젝트 에서이 줄을 제거하면 문제가 해결되었습니다.


이것을 알아내는 데 하루 종일 걸렸습니다. 고마워요! :)
SohamC

3

C # DLL에 x86 기반 종속성이있는 경우 DLL 자체는 x86이어야합니다. 나는 그 주위에 방법을 실제로 보지 못합니다. 64 비트 실행 파일은 32 비트 라이브러리를로드 할 수 없으므로 VS는 (예를 들어) x64로 변경하는 것에 대해 불평합니다.

C ++ 프로젝트의 구성에 대해 약간 혼란 스럽습니다. 빌드에 제공된 경고 메시지는 대상 플랫폼이 [MSIL] 인 것으로보고했기 때문에 AnyCPU를 대상으로했음을 나타내지 만 프로젝트 구성은 실제로 Win32임을 나타냅니다. 네이티브 Win32 앱에는 MSIL이 포함되어서는 안됩니다. C # 라이브러리와 상호 작용하는 경우 CLR 지원을 활성화해야 할 수 있습니다. 정보 측면에 약간의 차이가 있다고 생각합니다.

프로젝트의 정확한 구성과 프로젝트가 어떻게 관련되어 있는지 좀 더 자세히 검토하고 게시 해 주시겠습니까? 가능하면 더 도와 드리겠습니다.


3

데이비드 자루의 대답 이외에, 당신은 또한 이동해야 할 수 Build의 탭 Project Properties과 세트 Platform Targetx86당신에게 이러한 경고를 제공하는 프로젝트. 예상 할 수 있지만이 설정은 구성 관리자의 설정과 완벽하게 동기화되지 않은 것 같습니다.


2

C # 프로젝트의 경우 x86의 대상은 소리처럼 작동합니다. 이 어셈블리는 x86 아키텍처 만 지원한다고합니다. x64도 마찬가지입니다. 반면에 어떤 CPU는 어떤 아키텍처를 신경 쓰지 않는다고 말하면서 두 가지를 모두 지원합니다. 따라서 다음 두 가지 질문은 (1) 이러한 dll을 사용하는 실행 파일의 구성은 무엇입니까? 그리고 (2) 무엇입니까 비트OS / 컴퓨터의 내가 묻는 이유는 실행 파일이 64 비트로 실행되도록 컴파일 된 경우 64 비트 모드로 실행할 수 있도록 모든 종속성을 필요로하기 때문입니다. 모든 CPU 어셈블리를로드 할 수 있지만 x86 구성에서만 실행할 수있는 다른 종속성을 참조하고있을 수 있습니다. 64 비트 모드에서 실행 파일을 실행하려는 경우 모든 종속성 및 종속성 종속성을 확인하여 모든 것이 "Any CPU"또는 "x64"인지 확인하십시오. 그렇지 않으면 문제가 있습니다.

여러 가지면에서 Visual Studio는 모든 CPU와 다양한 아키텍처 종속 어셈블리를 쉽게 컴파일 할 수 없습니다. 가능하지만, "어떤 CPU"인 어셈블리는 x86과 x64에 대해 별도로 컴파일해야 할 필요가 있습니다. 어딘가의 종속 종속성에는 두 가지 버전이 있기 때문입니다.


DLL을 빌드하는 데 실패하여 실행 파일의 구성이 중요합니까? (x86입니다.) 내 컴퓨터는 x64입니다.
Paul Eastlund

2
사용할 비트 를 결정하는 것은 실행 파일입니다 . 실행 파일이 x64로 실행중인 경우 (직접 또는 간접적으로)로드되는 모든 항목은 x64 또는 모든 CPU 여야합니다. 실행 파일이 x86으로 실행중인 경우로드되는 모든 항목 (직접 또는 간접)은 x86 또는 모든 CPU 여야합니다.
Jonathan DeCarlo

1

SharePoint와 같은 기존 x64 솔루션에 테스트 솔루션을 추가 할 때와 비슷한 문제가있었습니다. 필자의 경우 특정 프로젝트 템플릿이 기본적으로 특정 플랫폼으로 추가된다는 사실과 관련이있는 것 같습니다.

다음은 종종 저에게 적합한 솔루션입니다. Configuration Manager에서 모든 것을 올바른 플랫폼으로 설정하십시오 (활성 구성 드롭 다운은 정상적으로 디버그하는 것이 좋습니다) 및 프로젝트 플랫폼 (프로젝트 속성) 빌드 한 다음 모든 것을 AnyCPU로 다시 설정하십시오. 때로는 일부 종속성 (각 프로젝트의 속성에서 DLL)을 제거하고 다시 추가해야하며 때로는 "32 비트 또는 64 비트 프로세스에서 테스트 실행"(Local.testsettings를 두 번 클릭하고 호스트로 이동)을 변경해야합니다.

이것은 단지 무언가를 설정하고 다시 설정하는 것 같지만 보이지 않는 장면 뒤에 더 많은 일이있을 것입니다. 과거에는 나에게 상당히 일관되었습니다.


1

내 프로젝트의 경우 x86과 x64 모두에 빌드 할 수 있어야합니다. 이것의 문제점은 하나를 사용하는 동안 참조를 추가 할 때마다 다른 하나를 만들 때 불평한다는 것입니다.

내 해결책은 * .csproj 파일을 수동으로 편집하여 다음과 같은 줄을 만드는 것입니다.

<Reference Include="MyLibrary.MyNamespace, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86"/>

<Reference Include="MyLibrary.MyNamespace, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64"/>

<Reference Include="MyLibrary.MyNamespace, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"/>

이것으로 변경하십시오 :

<Reference Include="MyLibrary.MyNamespace, Version=1.0.0.0, Culture=neutral"/>

1

MS UNIT Test DLL로 인해 비슷한 문제가 발생했습니다. 내 WPF 응용 프로그램은 x86으로 컴파일되었지만 단위 테스트 DLL (참조 EXE 파일)은 "Any CPU"입니다. x86 (EXE와 동일) 용으로 컴파일되도록 단위 테스트 DLL을 변경했으며 해결되었습니다.



0

.NET EXE / DLL AnyCPU 및 x86 및 x64로 컴파일 된 의존하는 관리되지 않는 DLL을 만드는 방법이 있어야합니다. 둘 다 다른 파일 이름으로 번들 된 다음 .NET 모듈이 런타임에 따라 올바른 파일을 동적으로로드합니다. 프로세서 아키텍처. 그러면 AnyCPU가 강력 해집니다. C ++ DLL이 x86 또는 x64 만 지원한다면 AnyCPU는 의미가 없습니다. 그러나 구성 관리자가 구현하지 않았으므로 번들로 제공되는 두 가지 아이디어는 여러 가지 번들링을 위해 AnyCPU 또는 다른 구성과 같은 다른 개념을 가능하게하는 다른 구성 / 플랫폼으로 동일한 프로젝트를 두 번 빌드하는 수단조차 제공하지 않습니다.


2
stackoverflow에 오신 것을 환영합니다! 이 답변에 약간의 초점을 맞추거나 다시 포맷 할 수 있습니까?
Corley Brigman

좋은 질문이나 블로그 게시물 또는 Connect의 기능 요청과 같은 것 같습니다. 실제로 이것에 대답하지 않습니다.
Ben Voigt

0

내 빌드에서 매우 비슷한 경고가있었습니다. 내 프로젝트는 빌드 서버에서 Windows 8.1 SDK (.NET 4.5.1 용)가 설치된 .NET 4.5를 대상으로 설정되었습니다. .NET 4.5.1을 대상으로 프로젝트를 업데이트 한 후 (문제는 아니고 완전히 새로운 응용 프로그램이었습니다) 더 이상 경고를받지 못했습니다 ...



0

SQL Server 2012 SP2를 설치할 때까지 SQL Server 2012 SP1 SSIS 파이프 라인 스크립트 작업을 컴파일 할 때 Visual Studio 2012에서이 경고가 나타납니다.


0

SQLite 열기 연결과 동일한 문제가 있었고 Nuget을 사용하고 프로젝트 (SQLite)에 사용 된 구성 요소를 설치하면 문제가 해결되었습니다! 이 방법으로 구성 요소를 설치하고 결과를 확인하십시오


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.