2016-06-08 3 views
0

실행 파일에서 아이콘을 가져 오는 방법을 찾고 있는데이 아이콘을 사용하는 새로운 실행 파일 (CSharpCodeProvider 사용)을 만듭니다.다른 어셈블리의 아이콘을 사용하여 실행 파일 만들기

첫 번째 부분은 쉽게, 나는 그것이 사용하여 수행

Icon icon = Icon.ExtractAssociatedIcon(path); 

문제점 내가 아이콘을 "연결"할 때 온다. 나는 사용하여 시도 :

compilerParameters.CompilerOptions = @"/win32icon:" 

을하지만이 솔루션은 파일에 기록 할 수있는 아이콘을 필요로하고 나는 그것이 16 개 이상의 색상 아이콘을 저장하는 등 엉망되는 (즉을 피하기 위해 이유 중 하나를하고 싶습니다 ...).

메모리에 System.Drawing.Icon 개체를 직접 사용할 수 있습니까?

편집 : 그냥 명확히하기 위해 C# 코드를 실행 파일로 컴파일 할 수있는 코드를 얻으려고합니다. 이 실행 파일에는 아이콘 개체로만 유지되는 아이콘이 있고 .ico 파일로는 파일에 저장되지 않습니다.

+0

roslyn을 사용하여 C# 응용 프로그램을 빌드하고 roslyn을 사용하여 컴파일하는 방법을 검색하고 이와 같은 리소스를 포함하는 방법을 검색 할 수 있습니다. http://stackoverflow.com/questions/36969090/roslyn-embedd-content-into-assembly-solved – mohsen

+0

Roslyn과 테스트를했다. 나는 여전히 파일을 사용하지 않고 생성 된 응용 프로그램에 아이콘을 넣는 방법을 알아낼 수 없습니다. – Stud

+0

아이콘을 응용 프로그램에 설정하여 프로젝트의 파일 ***. resx **에 저장하면 ** Visual Properties에서 ** Solution Explorer **의 ** Properties ** 아래에서 볼 수 있습니다 이 파일을 더블 클릭하여 * .resx. 따라서 roslyn으로 프로젝트를 컴파일하려면 * .resx 파일 및 ** embed **에서 *** 리소스 ** 파일을 작성하기 전에 컴파일해야합니다. 비주얼 스튜디오는 편집 할 때도 이러한 작업을 수행합니다. 나는 .iam busy에 대답 할 것이고, 저는 불행히도 지금 모바일로 작성했습니다. – mohsen

답변

1

사용 IconLibrary이 아이콘을

Icon icon = Icon.ExtractAssociatedIcon(@"C:\Windows\System32\notepad.exe"); 
MultiIcon mIcon = new MultiIcon(); 
SingleIcon sIcon = mIcon.Add("notepad"); 
sIcon.CreateFrom(icon.ToBitmap(), IconOutputFormat.Vista); 
sIcon.Save(@"c:\notepad.ico"); 

을 저장하고 CompilerOptions

더 많은 정보

https://msdn.microsoft.com/en-us/library/2aaxe43f.aspx

+0

고맙습니다. 이 lib에는 여전히 품질 문제가 있습니다. 나는 그것을 조사하고있다 :) – Stud

0

해결을 위해 그것을 사용 :

누구나 똑같은 일을하려는 경우, 올바른 결과를 얻을 수있는 방법이 있습니다 (정확한 그래픽 품질의 아이콘 추출).

내가 원하는 아이콘을 얻고 투명도가있는 비트 맵으로 변환하려면 Tsuda Kageyu IconExtractor을 사용합니다. 그렇다면 @mohsen이 제안한 IconLibrary을 .ico 파일로 작성한 다음 CompilerOptions에 포함 시키십시오.