2014-05-12 9 views
3

나는 버전 0.32에서 창조 된 간단한 엑셀 DNA 추가가있다.엑셀 DNA 부호 접근 안전

내 추가 기능에서 네트워크 드라이브에있는 다른 어셈블리를 동적으로로드하고 있습니다.

내가로드

내 엑셀 DNA Excel로에서-추가 내 엑셀-DNA 기능을 실행, 나는 다음과 같은 오류 얻을 :

가 { "이 방법은 암시 적으로 에 의해 대체 된 CAS 정책을 사용을 .NET 프레임 워크. 호환성 이유로 CAS 정책을 활성화하려면, 스위치. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=155570를 참조하십시오 NetFx40_LegacySecurityPolicy 구성을 사용하시기 바랍니다. "}

전 C를 아래 그림과 같이 Visual Studio에서 ExcelDNA 프로젝트의 .config 파일을 다시 작성했습니다.

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings> 
    <add key="DbPath" value="testString"/> 
    </appSettings> 
    <runtime> 
    <NetFx40_LegacySecurityPolicy enabled="true" /> 
    <legacyCasPolicy enabled="true"/> 
    <loadFromRemoteSources enabled="true"/> 
    </runtime> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> 
    </startup> 
</configuration> 

이 문제를 해결할 수있는 방법에 대한 아이디어가 있습니까?

도움을 주시면 감사하겠습니다.

답변

2

정확히 기억한다면 사용자가 지정하는 실제 .config 파일은 추가 기능을로드하는 실행 가능 프로세스와 함께 있어야합니다. 이 경우에는 Excel.exe이되므로 config는 Excel.exe.config이라고하며 Excel 디렉토리에 있어야합니다.

수도caspol.exe 도구 (click here for .NET 4.5 details)를 사용하여 코드 보안 그룹을 신뢰 만들어야합니다, .NET 4.0에서 코드 액세스 보안에 대한 레거시 지원을 사용하는 동안 네트워크 공유에서 라이브러리를로드합니다. 이는로드하려는 라이브러리를 배포하고 서명하는 방법에 따라 달라질 수 있습니다. 도구 발급 예를 들어 명령 행 사용

C:\Windows\Microsoft.NET\Framework\v4.0.30319\CasPol.exe

:이 도구는 일반적으로 다음 경로에있는 그것은 주목할 가치가있다

CasPol.exe -m -ag 1.2 -url file://to/your/network/share/* FullTrust

을, 두 개의 코드 액세스 보안 구성이 존재 하나 32 비트 용과 64 비트 용입니다. CasPol.exe 도구와 64 비트 명령 프롬프트를 사용하여 코드 액세스 보안을 수정하면 64 비트 프로세스에 대한 .NET 코드 액세스 보안이 수정됩니다! 엑셀은 일반적으로 32 비트 프로세스로 실행 (당신이 Microsoft's install advice을 따른다면) 그래서 당신은 같은 32 비트 명령 프롬프트에서 CasPol.exe을 실행해야합니다 :

C:\Windows\SysWOW64\cmd.exe