2014-05-24 3 views
0

내 솔루션에 단일 코드 기반을 사용하고 싶습니다.DLL을 사용하지 않으면 .NET 프로그램을 DLL없이 실행할 수 있습니까?

여기에는 일부 사이트에서만 사용되는 DLL에 대한 참조가 포함되어 있습니다. 일부는 DLL을 사용하는 보고서를 실행하는 버튼, 다른 버튼에는 버튼이 없으므로 DLL을 사용하는 코드를 실행할 수 없습니다.

모든 시스템에 DLL을 배포해야합니까, 아니면 DLL을 사용할 수있는 시스템에서만 배포해야합니까?

고려해야 할 문제점이 있습니까?

+1

기술적으로는 사용할 수없는 메서드를 호출 할 수있는 모든 메서드를 격리해야합니다. [MethodImpl] 특성을 삽입하여 인라인되지 않도록하고 if() 문을 추가하여 그것을 부른다. DLL을 복사 할 필요가 없기 때문에 저장하는 데 몇 초가 걸리므로 올바르게 완료되었는지 확인할 필요가 없습니다. 테스트 무기를 시범 테스트 할 때 시한 폭탄. –

+0

"옵션"DLL을 실행하는 코드가 내 코드에서와 같이 이미 분리되어 있으며 항상 그런 식으로 남아 있습니다.이 위험은 저에게 문제가되지 않습니다. – finch

답변

2

When are referenced Assemblies loaded?를 참조하십시오

다른 어셈블리의 형식을 참조하는 방법을 입력합니다.

해당 유형을 사용하는 코드를 호출 할 수없는 경우 click 이벤트가 해당 메서드를 호출하는 버튼이 숨겨져 있기 때문에 이러한 어셈블리를 생략하면됩니다.

+1

위의 페이지는 매우 명확하고 도움이되는 [Delay Loading .Net Assemblies] (http://innovatian.com/2009/06/delay-loading-net-assemblies/)를 참조합니다. 요약하면 메서드가 조건절과 "선택적"어셈블리에 대한 참조, 조건절 및 "선택적"어셈블리를 참조하는 별도의 메서드에 대한 호출을 모두 포함하지 않음을 제안합니다. 이것은 간단하고 비교적 직관적이어서 잘 맞습니다. – finch

관련 문제