Visual Studio에서 64비트, 32비트 DLL 동적 라이브러리 파일을 참조하는 구성 방법

2479 단어
원래는 Win7의 32비트 시스템을 사용하여 C#공정의 개발을 진행하였으나, 후에 시스템을 재조립하여 Win7의 64비트 시스템으로 바꾸었다
원래 프로젝트를 디버깅합니다. "SQLite"의 32비트 dll을 인용하여 64비트 아래에서 프로그램을 실행할 수 없습니다. (그러나 컴파일링은 통과할 수 있습니다.)
나중에 프로젝트 파일(.csproj)을 수정하여 인용 조건을 설정하여 문제를 해결하였다.
SQLite를 인용한 프로젝트 (예: info) 의 프로젝트 파일 (info.csproj) 을 열고 SQLite에 인용된 문장을 찾습니다. 다음과 같은 코드를 찾습니다.
 
  

False
..\..\libs\SQLite\System.Data.SQLite.dll


여기에 인용된 라이브러리의 명칭, 경로 등 정보를 지정하였으며, 위의 설정 내용을 다음과 같이 수정하였다.
 
  

False
..\..\libs\SQLite\System.Data.SQLite.dll


단지 하나의 Condition 제한 조건을 추가하여 플랫폼 유형 비트AnyCPU에서만 이 경로에 따라 dll을 인용한다는 것을 나타낸다
위의 설정 내용을 복사하고 다음과 같이 수정하여 x64 플랫폼의 생성 시 인용하는 dll 경로를 설정합니다

    
  
False
..\..\libs\SQLite\System.Data.SQLite.x64.dll

마지막으로 VS에서 어떻게 서로 다른 생성 플랫폼을 설치하는지 말씀드리겠습니다.
도구 모음의 '해결 방안 플랫폼' (일반적으로 'Any CPU' 가 표시됨) 아래 상자에서 '설정 관리자' 를 선택하고 원하는 플랫폼 형식을 추가합니다. (일반적으로 x64, x86, Itanium에서 선택하고 기본 이름을 수정하지 마십시오.)
그리고 창 아래에 있는 '프로젝트 상하문 중' 에서 대응하는 항목 (여기는 info 항목만 있고 나머지는 AnyCPU가 변하지 않음) 에서 플랫폼 형식을 수정합니다 (X64로 수정)
그리고 여기에 설정하면 프로젝트 파일에 추가된 플랫폼 유형에 대한 설정이 완전하지 않을 수 있습니다. (제가 컴파일할 때'OutputPath는 설정이 없습니다'라고 알릴 수 있습니다) 이럴 때 vs의 프로젝트 속성 인터페이스에 들어가서 조금 수정(다른 것으로 바꾸고 저장하고 다시 고칩니다) 이런 설정들은
ok, 이럴 때 플랫폼의 유형에 따라 대응하는 dll를 인용할 수 있을 거예요.
인터넷에서 찾은 자료에 의하면 이런 방법은 msi의 설치 프로그램의 제작에 그다지 좋지 않다고 한다. 나는 잘 모르겠다. 이 방면에 관련된 학우들은 다시 자세히 조사해 보자.
단, 나는 여기에서 실행 가능한 해결 방안을 제공한다. 그것은 전체 프로젝트를 설치 프로그램에 만들지 말고, 단지 가장 기본적인 설치 프로그램을 만들고, 업그레이드를 통해 최신을 보장하는 것이다.
네트워크가 없는 환경에서도 컴파일링을 설치 디렉터리에 따로 압축하여 전체 해결 방안을 설치 패키지로 만들지 않도록 할 수 있다.

좋은 웹페이지 즐겨찾기