.NET
에 대해 질문이 있습니다.. NET 응용 프로그램에 의해 Dll 사용
dll의 일부 하위 집합을 사용하는 WinForms applications
집합이 있습니다. 그 중 일부는 해당 응용 프로그램간에 공유됩니다. 모든 바이너리는 같은 디렉토리에 있습니다. 그 WinForms 애플 리케이션을 분할하고 구체적인 애플 리케이션에 필요한 DLL 만 가져 가야합니다. 어떻게하면 쉽게 할 수 있습니까? ("빠른"5 분 솔루션이 필요합니까?)
옵션은 내가 생각 :
domain.ExecuteAssembly을 (@ "exefilename"); domain.GetAssemblies(); // 앱에서 사용하는 어셈블리를 확인합니다.
단일 스레드 아파트 속성 또는 별도 스레드가 필요합니다. x86, x64 및 AnyCPU 빌드에 문제가 있습니다. 보안, 프레임 워크 버전 등으로 많은 트릭이 있습니다.
그래서 "5 분"해결 방법이 아니며 추가 조사가 필요하다고 생각합니다.
Assembly.GetReferencedAssemblies()
이 (어셈블리 참조 어셈블리가 차례로 다른 어셈블리를 참조하는 경우 작동하지 않습니다) 1 개 레벨 제한이 있습니다. (System.Diagnostics 네임에서)
Process.Modules
(당신이 (AppDomain.Load 방법으로 파일을로드에서 바이트 [] 바이트 [])를 읽을 때) 원시 조립 로딩 작동하지 않습니다.NET 4에서 시작하는 데 작동하지 않습니다 (이 문제로 인해 msft connect에 버그가 있음). .NET 3.5에 대한 훌륭한 "5 분"솔루션이 되겠지만 .NET 4.5에 대한 솔루션이 필요합니다.
그냥 응용 프로그램을 실행하고 폴더의 모든 DLL을 삭제하십시오. 사용 된 파일은 삭제되지 않습니다 (파일은 잠겨 있습니다). 그러나 여전히 원시 어셈블리 로딩에는 작동하지 않습니다.
다른 아이디어가 있습니까?
사용자 작업 -> signIn, SignUP, forgotPassword, 암호 재설정 2) DB Inser/ADd/Edit, 4) DB DEleted 양식은 분할 할 수있는 것처럼 적용됩니다. –
여기 좋은 기사가 있습니다 : http://msdn.microsoft.com/en-us/magazine/cc163641.aspx#S1 옵션 1을 선택하는 경우 –
@Akshay Joy 죄송합니다, 내가 팔로 잉을 확신하지 못합니다. 당신. dll에 비즈니스 로직이 필요하며 UI가 필요하지 않습니다. 하지만 그 dll의 어떤 하위 집합이 특히 모든 단일 응용 프로그램에서 사용되는지 알아야합니다. –