2015-01-15 3 views
0

SQL Server에서 병합 복제 프로세스를 제어하는 ​​응용 프로그램을 작성했습니다. 문제없이 내 개발 컴퓨터에서 실행 중입니다. 내 테스트 설치에서 SQL Server 2008 R2 64 비트를 Win 7 64 비트에 설치했습니다. [치명적인] - - [2015년 1월 15일 오전 9시 29분 56초] - 버전 0.5.16.0 사용자 내 복제 프로그램을 사용하려고하면 다음과 같은 예외 메시지올바른 버전의 Microsoft.SQLServer.Replication.dll 설치

[ReplicatorClient.exe]와 충돌 - vuser 메시지 - 파일 또는 어셈블리 'Microsoft.SqlServer.Replication, Version = 12.0.0.0, Culture = neutral, PublicKeyToken = 89845dcd8080cc91'또는 해당 종속성 중 하나를로드 할 수 없습니다. 잘못된 형식의 프로그램을로드하려고했습니다.

스택 추적 - ReplicatorClient.Models.DatabaseSynchronization.CreatePublication()에서
bin 폴더에 내가 Microsoft.SqlServer.Replication.dll을 복사 한

ReplicatorClient.ReplicatorWindow.ReplicatorWindowViewModel.MenuCreateSubscription()에서
을 사용하고 그 내 개발자 컴퓨터에 설치하고 테스트 컴퓨터의 프로그램 폴더에 설치하지만 프로그램에서 분명히 보이지 않습니다. 이 dll을 볼 수 있도록 응용 프로그램을 배포 할 때 올바르게 작동 할 수 있도록하기 위해 수행해야 할 작업을 파악하기 위해 수행 할 수있는 단계는 무엇입니까?

설치하려면 WIX를 사용하고 있습니다.

답변

0

일반적으로 WiX/MSI는 실제 종속성을 자동화하는 문제이므로 배치 방법 (수동 복사본의 증거)은 중요하지 않습니다.

일반적으로 어셈블리로드를 프로파일 링해야합니다. 나는 X 또는 "의존성에 관한 것"이라고 말하기 때문에 항상이 메시지를 싫어했다. 나는 정확히 그것이 정확히 무엇인지 말해 주었으면 좋겠다.

ILDasm과 ProcessMonitor를로드하고로드하려고 시도하고있는 아이디어를 얻으려면 바스 트하십시오. 설치 프로그램에 설치 파일을 가져 와서 VM을 재설정하고 헹구십시오.

PS- 때로는 비공개로 배포하는 DLL이 올바른 일이며 때로는 사전 재배포 가능 파일을 설치하는 것이 올바른 일입니다. 이 모든 것을 처리하고 대신에 부트 스트 래퍼/체인저 (있는 경우)에 연결하는 SQL MSI가있을 수 있습니다. 단지 약간의 연구가 필요합니다. 이것은 익숙한 DLL이 아니므로 내 머리 꼭대기에서 답을 찾을 수 없습니다.

+0

지금 당장은 처음으로 ILDasm을 시도하고 있으며, 응용 프로그램으로 시작할 때 메시지 팝업 오류가 발생합니다. 그게 정상인가요? – PlTaylor

+0

Ndepend를 참조하십시오. http://stackoverflow.com/questions/9262464/tool-to-show-assembly-dependencies –

+0

그런 Dll을 선택하고 선택하는 것은 거의 잘못된 것입니다. SQL 설치에는 복제 구성 요소를 설치할 수있는 옵션이 있으며 기본적으로 설치되지 않은 것 같습니다. 또한 코드의 비트가 SQL Server http://technet.microsoft.com/en-us/library/ms172376(v=sql.105).aspx 구성 요소의 비트와 일치하는지 확인하십시오. – PhilDW