2011-08-16 3 views
8

.Net4.0에 .NET 2.0 DLL을로드하고 싶습니다. dll. 나는 해결책을 찾았고이 URL과 같이 app.config에 추가 할 수있는 'useLegacyV2RuntimeActivationPolicy'속성을 찾았습니다. Mixed mode assembly is built against version 'v1.1.4322'.net 4.0 DLL에서 .net2.0 dll

하지만 제 경우에는 문제가 있습니다. .net2.0 dll이 내 4.0 DLL이고 4.0 exe ​​이 아닙니다. 그 이유는 4.0 dll이 Excel에서 자동화 추가 기능으로 사용되기 때문입니다.

현재 Excel에서 내 .NET 4.0 API (기능에 대한 2.0 dll을로드)에 액세스 할 때 '혼합 모드 2.0 dll은 4.0 런타임에로드 할 수 없습니다'라는 메시지가 표시됩니다. 이는 COM에로드 된 이후로 이해할 수 있습니다. 4.0 CLR 따라서 2.0 DLL을로드 할 수 없습니다.

어떻게 든 2.0 런타임을로드하려면 4.0 DLL을 만들어야합니다. 4.0 dll에 app.config를 추가하려고 시도했지만, .exe만이 기본적으로 clr을로드하기 위해 app.config를 읽습니다. 이것은 내 app.config에서 4.0 dll 프로젝트이지만 사용하지 않은 것입니다.

<?xml version="1.0"?> 
<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 
    <runtime> 
    <NetFx40_LegacySecurityPolicy enabled="true"/> 
    </runtime> 
</configuration> 

어떻게 .NET 2.0 DLL을 사용하는 내 .NET 4.0 DLL 수 있도록이 문제를 해결합니까?

덕분에, 마니

+1

일반 dll처럼 .net 2 dll을 추가하려고 했습니까? – Jethro

+0

.NET 2.0 DLL이 아닌 것 같습니다. .NET 1.1 DLL입니다. –

+7

.config 파일은 훌륭하지만 excel.exe.config이어야하며 Excel이있는 Office 디렉터리에 복사해야합니다. –

답변

4

대답은 이미 한스 옆모습에 의해 이루어집니다 그러나 그는 주석으로 올렸습니다. 그러므로 여기에 별도로 대답하십시오.

config는 excel.exe.config라고하며이 시나리오를 실행하려면 excel.exe와 동일한 Office 디렉터리에 있어야합니다.