2010-05-22 1 views
7

전체 설명 : Visual Studio Installer (VSI)로 만든 설치 프로그램이있는 멋진 .NET 프로그램을 만들었습니다. VSI는 두 개의 파일 (setup.exe 및 MyProgramSetup.msi)을 만듭니다. 나는 두 파일이 모두 필요한 이유를 이해하지만, 나는 단 하나의 실행 가능한 설치 프로그램을 사용자에게만 배포하려고합니다. 나는 그들이 2 개의 파일을 보지 못하도록하고 그들 사이에서 선택해야한다.명령 줄 유틸리티를 사용하여 exe 리소스 (파일 설명, 아이콘 등)를 편집하려면 어떻게해야합니까?

이렇게하려면 IExpress를 사용하여 2 개의 파일을 자동 압축 해제 아카이브에 병합했습니다 (이 대답에서 볼 수 있듯이 : Merge msi and exe). 그러나 잘 작동하지만 생성 된 자동 압축 풀림 보관소는보기 흉한 아이콘과 혼란스러운 파일 정보를 포함합니다 (파일 설명은 "Win32 Cabinet Self-Extractor"이며 공백이 43 개임).

아이콘을 내 사용자 정의로 바꾸고 "설명", "회사"등의 파일 속성을 변경해야합니다.이 작업을 빌드 단계로 자동 수행해야합니다. 커맨드 라인/콘솔 유틸리티가 좋을 것입니다.

나는 지금 잠시 동안 검색 한 결과 내가 원하는 것을 정확하게 수행 할 수있는 프로그램을 찾을 수 있지만 (ResourceTuner Console : http://www.heaventools.com/command-line_resource_editor.htm) 팔과 다리가 필요하고 예산은 $ 0입니다.

누구나 GUI를 사용하지 않고도 실행 파일의 리소스를 대체 할 수있는 프로그램을 알고 싶거나 더 좋은 방법을 알고 있습니까?

resedit.exe -convert "Modified Resources.rc" "MyProgramSetup.exe" 

답변

5

비주얼 스튜디오는 경우 편집 할 수 있습니다 : 그런데

, 나는 또한 내가 명령을 실행할 경우에도 실행 파일을 열고, 그냥 충돌 ResEdit을 할 수없는 SiComponents '자원 빌더 3을 시도 당신은 실행 파일을 엽니 다. 비록 커맨드 라인에서 그것을 할 수있는 방법이 있는지 모르겠습니다.

CodeProject article은 아이콘을 처리하기 때문에 (exe 파일에 저장하는 것을 포함하여) 괜찮습니다.

회사 이름, 설명 등은 버전 리소스의 일부입니다. 또 다른 CodeProject article은 버전 리소스를 업데이트하는 것을 다루지 만, 나는 깊이있는 것을 보지 못했다.

+3

두 번째 링크 (VerPatch)는 버전 리소스를 변경하는 데 적합했습니다. 오픈 소스와 93KB, 우수! 다음 명령을 사용했습니다 : verpatch.exe "Blah Setup.LegalCopyright "Blah"/ s OriginalFilename "Blah" – Coder7862396

3

'reshacker'AKA 'resource hacker'를 보셨습니까? 주로 gui 도구로 승격되지만 도움말 파일에는 명령 줄 스크립팅을 사용하여 모든 기능에 액세스 할 수 있다고 나와 있습니다. exe 파일의 아이콘을 변경하기 위해 gui 형식을 사용했으며 다른 임베디드 리소스에서도 사용할 수 있습니다. '리소스 해커'에 대한 Google, 현재 버전은 3.4.0으로 보입니다.

+1

다음 명령을 사용하여 Resourse Hacker를 사용하여 기본 아이콘을 바꿀 수있었습니다 : ResHacker.exe -addoverwrite "Blah Setup.exe", "Blah Setup.exe", "ProgramIcon.ico", ICONGROUP, MAINICON, 0 – Coder7862396

2

파일 버전 정보 질문에 답하면 IExpress .SED 파일에 자신의 버전 정보를 포함 할 수 있습니다. 이 site은 IExpress .SED 파일 섹션 및 특성에 대한 추가 정보를 제공합니다. 내장 된 기능을 사용하는 것이 setup exe를 사후 처리하는 것보다 쉽습니다.

기본적으로 .SED 파일에서 옵션 섹션에 VersionInfo 참조를 포함하십시오. 그런 다음 버전 정보가 포함 된 섹션을 만듭니다.

[Options] 
VersionInfo=VersionSection 

[VersionSection] 
FromFile= ;Uses the version info in this executable file 
; or specify each attribute 
; or specify the FromFile and override individual attributes 
FileDescription= 
CompanyName= 
FileVersion= 
ProductVersion= 
OriginalFilename= 
LegalCopyright= 
ProductName= 
InternalName= 

현재로서는 FileVersion이 작동하지 않습니다. YMMV,

+0

이 같은 sed 파일을 편집하고 변경 사항을 저장했지만 수정 된 세부 정보는 반영되지 않습니다. 최종 exe. 또한 변경 사항을 보려면 대상 컴퓨터에 exe와 함께 sed 파일을 공유해야합니까? –

+0

@JMat .SED 파일을 배포 프로젝트에 추가 했습니까? .SED 파일은 빌드 단계 : 해당 파일을 제공 할 필요가 없습니다. –

+0

.sed 파일은 exe 파일과 함께 나와 함께 IExpres 마법사에서 생성됩니다. 그래서 우리는 exe 파일을 생성 한 후에 sed 파일을 편집해야합니다. 틀린 orde R은 현재 내가하고있는 단계는 1.Exe 및 IEDpress 도구를 사용하여 sed 파일을 생성하고 위에서 언급 한 대답에 따라 sed 파일을 편집하고 변경 사항을 저장합니다. 그러나 sed 파일에 대한 편집은 exe 파일에 반영되지 않습니다. 내 질문은 여기 http://stackoverflow.com/questions/28313804/edit-fileinfo-of-exe-created-using-iexpress-by-modifying-sed-file –