3.6 버전의 LO SDK 라이브러리를 사용하여 LibreOffice Calc에서 보고서를 작성하는 응용 프로그램을 만들고 있습니다. 이러한 dll은. NET 2.0, afaik, 내 응용 프로그램은. NET 3.5, 그래서 함께 잘 작동합니다.해당 폴더에서 dll을로드하려고하는 응용 프로그램
LO 4.0이 설치된 PC에서 응용 프로그램을 실행하면 응용 프로그램 폴더 (올바른 DLL이 복사 된 곳)에서 dll을로드하려고 시도하는 것처럼 보이지만 호스트 PC의 어딘지에서는 예외가 발생합니다 " 이 어셈블리는 현재로드 된 런타임보다 최신 런타임에 의해 작성되며로드 할 수 없습니다 "cli_uno.dll로드시 (보고서를 실행하려고 할 때). LO 4 SDK dll이 .NET 4.0 용으로 어셈블 된 것처럼 보입니까?
글쎄, .NET 4.0 용 응용 프로그램을 다시 빌드하는 옵션이 아닙니다 (새 .NET 5.0 dll이있을 때 반복됩니다).
응용 프로그램이 자체 폴더에서만 dll을로드하도록 만들 수있는 방법이 있습니까?
UDPATE 실제로 cli_uno.dll은 내 응용 프로그램에 전혀 포함되어 있지 않습니다. LO 설치 폴더에 있으며 분명히 응용 프로그램에 포함 된 'cli _ *. dll'파일에 의해 분명히 호출됩니다. 그러나 나는 어떤 버전의 LO가 설치 될지 제어 할 수 없다! 그것은 어떤 assemly 버전 설정에 의해 통제 불능입니다. 애플리케이션이 LO 3.6으로 정상적으로 작동하면 올바르지 않지만 LO 4.0으로 업그레이드 한 후 작업을 중단하십시오. 진심으로 저는 고대 델파이 7에서 고대 라이브러리를 사용하여 MS 엑셀 (XP/2000 버전이 실제로 만들어 졌을 때 만들어졌습니다)에 연결하여 응용 프로그램을 만들었습니다. 적어도 2007 버전에서는 잘 작동합니다.
다른 버전의 애플리케이션 (심지어 다른 플랫폼)이 상호 운용하고 데이터를 교환 할 수 있기 때문에 인터페이스를 사용하지 않아도됩니까? LO SDK를 완전히 잘못 사용할 수 있습니까?
중복 될 수 있습니까? http://stackoverflow.com/questions/267693/how-can-i-force-net-to-use-a-local-copy-of-an-assembly-thats-in-the-gac –
모양, 나 그걸 들여다 보겠습니다. 고마워요. – yaapelsinko
지금 알 수 있듯이 'cli_uno.dll'은 내 응용 프로그램의 일부가 아니고 LO 설치이며 내 응용 프로그램에서 호출 한 응용 프로그램 어셈블리 버전 설정을 제어하지 않습니다. 나는 질문을 updatew. – yaapelsinko