2009-08-19 2 views
0

Windows 파일 버전 대화 상자에서 정보를 확장 할 수있는 방법이 있습니까? 모든 표준 속성은 이미 추가 정보를 추가 할 수없는 방식으로 사용 중입니다.
Ovanes,Windows 버전 애플릿 infrormation을 확장하는 방법

P.S.

Other version information: 
Item name:     Value: 
    Assembly Version    Information related to my additional attribute 
    File Version 
    Language 
    Product Name 
    Product Version 
>My Additional Attribute 

많은 감사 : 내가 필요한 것은 아래의 파일 속성/버전 애플릿의 항목 중 하나로 표시 추가 값으로 사용할 수있는 새로운 속성 클래스의 일종이다 추가 리소스를 주입하는 리소스 편집기 나 명령 줄 도구를 사용하여 답변을 얻은 후 현재 프로젝트 설정을 명확히하고 싶습니다. 우리는 700 개 이상의 어셈블리를 보유하고 있습니다. 현재 모든 어셈블리의 컴파일에 포함 된 AssemblyVersion.cs라는 글로벌 파일을 사용합니다. 모든 버전 필드는 한 번 채워지며 모든 어셈블리의 빌드 중에 포함됩니다. 문제는 그들이 가지고 있어야하는 엄격한 정책이라는 것입니다.

[assembly: AssemblyCopyright("My global copyright message")] 

미리 정의 된 비 일반 필드가 조립 자신의 버전 파일에 지정 될 무료 : 같은 AssemblyVersion.cs에서 모든 일반 (프로젝트 관련) 데이터가 포함됩니다. 이 필드가 거기에 지정되어 있고 그것들을 전역 AssemblyVersion.cs에 넣으면 컴파일러 오류가 발생합니다. 강력한 이름 어셈블리를 생성하면 리소스 편집기로 해킹하여 서명이 파괴됩니다. 700 개 어셈블리 모두에서 리소스 파일을 가져 오려면 상당한 시간이 걸릴 수 있습니다. 가장 좋은 방법은 다음과 같이 사용할 고유 한 속성 클래스를 작성하는 것입니다.

[assembly: MyAssemblyAttribute("Some data goes here")] 

이 속성을 파일 버전 대화 상자에 표시하려면 어떻게해야합니까?

답변

1

Windows 파일 버전 대화 상자의 정보는 Win32 EXE 파일의 일부로 Version data resource에 저장됩니다. 리소스를 편집하고 버전 데이터에 새 데이터를 추가 할 수있는 많은 도구 (그래픽 기반 및 콘솔 기반)가 있습니다. 콘솔 기반 정보 중 하나를 사용하여 정보를 자동으로 추가 할 수 있습니까?

또는 리소스 컴파일러로 Win32 리소스를 만들고이를 빌드하는 동안 가져 오려고 할 수 있습니다. 이것에 대한 csc option이있다 :

/win32res 옵션은 출력 파일에 Win32에서 리소스를 삽입합니다. [...]

Win32 리소스에는 Windows 탐색기에서 응용 프로그램을 식별하는 데 도움이되는 버전 또는 비트 맵 (아이콘) 정보가 포함될 수 있습니다.

+0

내 게시물을 편집하여 왜 나를위한 옵션이 아닌지 설명했습니다. – ovanes

+0

AssemblyCopyright 속성 외. 컴파일러에서 인식 할 수있는 특수 특성입니다. 버전 데이터 자원에 넣을 새로운 속성을 인식하도록 컴파일러를 수정해야합니다. (사실, Mono C# 컴파일러의 소스는 자유롭게 사용할 수 있습니다!) 최선의 선택은 여러분의 경우에'/ win32res' 옵션이라고 생각합니다. – dtb

+0

Visual Studio에서 버전 구조를 검사했습니다. 더 많은 필드를 추가 할 수 없습니다. 속성에 매핑되지 않는 두 개의 필드는 SpecialBuild 및 PrivateBuild뿐입니다. 어셈블리 수준 특성을 통해 설정할 필드를 등록 할 수 있습니까? 컴파일러를 커스터마이징하는 것을 이해하는 것은 옵션이 아닙니다;) – ovanes

관련 문제