2010-05-11 4 views
2

Microsoft의 System.Net.Mail 구현은 강력한 메일 솔루션을 제공하지 않습니다. 대신 Mono의 System.Net.Mail 구현을 사용하고 싶습니다. 그러나 네임 스페이스는 Mono와 함께 제공되는 System.dll에 포함되어 있으며 원본 .net 프레임 워크와 완전히 동일한 네임 스페이스를 사용합니다.Mono에서 System.Net.Mail을 추출하고 네임 스페이스의 이름을 바꿀 수 있습니까?

대신 모노 솔루션에서 System.Net.Mail을 추출하고 이름 공간의 이름을 Mono.System.Net.Mail로 바꾸고 싶습니다. 그렇다면 자체 DLL에서 이것을 컴파일하고 마침내 작동하는 메일 링 솔루션을 가질 수 있습니다!

아무에게도 이것이 어떻게 수행 될 수 있는지 말할 수 있습니까?

+0

이것은 합법적입니까? :) 또한 호기심에서 구체적으로 튼튼하지 않은 것은 무엇입니까? – bzlm

+0

@bzlm 예 라이센스 계약을 준수하고 Mono를 명시 적으로 언급 한 경우 법적으로 허용됩니다. 2ndly-in .net v3.5 이하에서는 SMTP 클라이언트가 QUIT 명령을 SMTP 서버에 보내지 않습니다. .net v4.0 RTM에서는 3-4MB.s보다 큰 첨부 파일을 보낼 수 없습니다. –

답변

2

그냥 새 프로젝트에 필요한 클래스를 복사 svn repository (svn co svn://anonsvn.mono-project.com/source/trunk/mcs/class/System/System.Net.Mail)의 코드를-확인 네임 스페이스를 변경하고 dll을 직접 컴파일하십시오. 모노 클래스 라이브러리는 MIT 라이센스에 따라 라이센스가 부여되므로 최종 제품 라이센스에 사용하면 모든 것이 정상입니다.

+0

음, 마침내 그랬습니다. 정확히 케이크 걷기가 아니었지만 너무 어렵지 않았습니다. –

0

당신은 사용할 수 가능성이있는 extern alias (당신은 C#을 사용하는 경우)

+0

감사하지만 유감스럽게도이 기능은 2010 년 vs 2010 년 버기입니다. 예 : - 새 클래스 라이브러리 (프레임 워크 v4)를 만들고, 참조를 삭제합니다. 체계. 새 참조 추가 - mono system.dll을 찾아보고 추가하여 이전 System.dll이 프로젝트에 어떻게 추가되었는지 확인합니다. –

+0

또한 파일 이름을 바꾸면 시스템 DLL이 참조 목록에 있지만 컴파일되지 않습니다. - 오류 'System, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089'와 동일한 ID를 가진 어셈블리가 이미 있습니다. 수입. 중복 참조 중 하나를 제거하십시오. \t d : \ Mono-2.6.4 \ lib \ mono \ 2.0 \ Mono.System.dll \t ClassLibrary1 –

관련 문제