2009-05-12 3 views
3

내 응용 프로그램에는 제어 라이브러리가 있는데,이 응용 프로그램은 현재 개발중인 응용 프로그램 유형에 약간 큽니다. 라이브러리는 2Mb 이상이고 간신히 기능을 사용하며 기능의 5 ~ 10 %를 사용한다고합니다..NET에서 사용되지 않는 코드/어셈블리를 제거 할 수 있습니까?

내 응용 프로그램이 라이브러리에서 사용하지 않는 코드를 제거 할 여지가 있습니까?

추신 :이 라이브러리는 저에게 개발되지 않았으며 오픈 소스가 아닙니다 (코드를 구매할 수 있습니다).

EDIT : ILMerge를 사용하여 달성 할 수 있었지만 이전에 누군가 내게 말한 것이기 때문에 게시했습니다 ... ILMerge를 사용해 보았지만 작동하지 않았고, 그것을 올바르게 사용하고 있습니다 ...

+0

https://github.com/glueckkanja/ILStrip을 고려해보십시오. – quetzalcoatl

답변

0

2Mb가 크지 않습니다.

코드가 너무 많아서 코드이기 때문에 동일한 네임 스페이스를 사용하여 별도의 어셈블리로 리팩터링해야합니다. 그렇게하면 코드가 필요한 어셈블리 만 참조 할 수 있습니다.

+0

앱이 몇 kbs 밖에 없을 때 너무 많아서 2 메가 바이트의 추가 코드가 너무 많습니다. 그리고 도서관 코드는 제 것이 아닙니다. –

+0

2Mb는 메모리가 256Mb 이상인 최신 컴퓨터에서는 _virtual_ memory로 간주되지 않습니다. 만지지 않으면 공간을 차지하지 않습니다. –

0

오픈 소스 인 경우 코드를 살펴보고 선택적으로 원하는 것을 가져 와서 별도의 어셈블리를 빌드 할 수 있습니다.

오픈 소스가 아닌 경우 어셈블리에 Reflector을 사용하고 유지하려는 코드 (및 모든 종속성)를 짜낸 다음 자신의 어셈블리에서 다시 빌드 할 수 있습니다. 나는 그것이 얼마나 합법적인지 모르겠습니다. 라이브러리의 사용권에 달려 있습니다.

+0

오픈 소스가 아니고 (처음 게시판 편집을 참조하십시오.) 너무 많아서 작업이 너무 많습니다 ... –

+0

불행히도 ILMerge는 정반대입니다 (어셈블리에 코드가 더 많이 ...) –

0

이렇게 할 수는 있지만 프로그래밍이 필요합니다. 모노 세실 프로젝트를 살펴보고, 어셈블리를 열고, 원치 않는 유형을 제거하고, 저장할 수 있습니다. 프로그래밍은 어떤 유형이 사용되지 않는지 결정하는 것과 관련이 있습니다 (유형 A는 유형 B를 사용하므로 유형 A를 사용하는 경우 유형 B를 유지해야합니다) ...

+0

너무 많은 작업이 필요하지만, 나는 자동 무언가를 찾고 있었는데 ... –

1

내 상사가이를 수행하는 난독 화 제품으로 작업했지만, 조합 된 어셈블리에 사용 된 코드를 가져와야합니다. DotNet Reactor (우리는 하나에 정착하기 전에 몇 가지 다른 제품을 사용했습니다)라고 불리는 것을 기억하지 못합니다.

+0

VS2008에서 어떤 것이 호출되는지는 기억이 안납니다. 약간만 작동하는 obfuscator가 제거되었고, 라이센스 버전을 구입하면 코드가 크게 줄어들 것이라고 예상합니다. 크기. –

+0

그런 종류의 일은 아마도 그러한 기능을위한 돈이들 것입니까? 이건 나에게는 사소한 불편이다. 그 때문에 돈을 내지 않을거야. –

1

여기에는 SmartAssembly이라는 제품이 있습니다. 적어도 나에게는 약간 비싸다.

1

마찬가지로주의해야 할 점은 라이브러리를 만든 공급 업체 회사의 EULA에 따라 허용 된 작업인지 확인하십시오.

관련 문제