Windows 서비스가 C#으로 작성되었습니다. 동적으로 C# 코드를 생성하여 abc.dll, xyz.dll 등으로 어셈블리에 컴파일합니다. 이러한 어셈블리는 나중에 실행을 위해로드됩니다. 컴파일 할 때 System.CodeDom.Compiler.CompilerParameters 클래스의 컴파일러 옵션 중 하나로/keyfile : mykeyfile.snk를 전달합니다. 이제 문제가 발생했습니다 : 강력한 이름 유효성 검사가 실패하여 일부 어셈블리를로드 할 수 없습니다.CompileAssemblyFromSource 테스트 어셈블리에 서명합니다.
나는 테스트 시스템에서 생성 된 어셈블리를 얻었고 sn, exe로 체크했을 때 약 6 개의 어셈블리 중 하나가 지연되거나 테스트 된 것을 볼 수있다. sn.exe -v xyz.dll을 실행하면 xyz.dll은 지연 서명 또는 시험 서명 된 어셈블리. 분명히로드 할 수 없게됩니다.
일부 어셈블리가 제대로 서명되지 않은 이유는 무엇입니까?
도움이 될지 모르지만 컴파일러 출력을 로그에 남기려고 했습니까? 어쩌면 문제의 왕이 있을지도 모릅니다. –