2008-10-21 7 views
3

우리는 제품을 가지고 있지만 우리는 두 가지 버전을 만들고 유지할 수 있도록 약간의 브랜드 변경 작업을하고 있습니다. #if 파일과 결합 된 리소스 파일을 사용하여 문자열, 이미지 및 기타 문제를 해결했지만 프로그램 아이콘으로 인해 문제가 발생합니다. 나는 msdn 또는 Google 검색에서 그것을 알아낼 수 없었다. 감사!C에서 다른 빌드로 다른 아이콘을 원합니다.

답변

1

일반 코드로 아이콘을 설정하면 다른 곳에서와 동일한 기술을 사용할 수 있습니다. 두 아이콘이 리소스 파일에 있어야합니다 (적어도 의심 스럽지만). 작동해야합니다.

또는 해당 아이콘을 공통 파일 이름으로 복사하도록 미리 빌드 단계를 설정하십시오. debug.ico 또는 release.ico를 app.ico에 복사합니다. 약간 해키지만, 나는 그것이 효과가있을 것이라고 생각합니다. 그렇게하면 완성 된 바이너리에서 하나의 아이콘으로 끝납니다.

또 다른 옵션 : 빌드 파일을보고 아이콘이 내장 된 방법을 확인한 다음 조건부로 조건을 지정합니다. Marc Gravell은 MiscUtil의 참조를 위해이 작업을 수행했습니다.이 프로젝트는 구성에 따라 .NET 2.0 또는 3.5를 대상으로 구축 할 수 있습니다. 나는 자원이 매우 유사한 방법으로 조건부 화 될 수 있다고 생각한다.

1

구성 이름이 지정된 아이콘 파일을 만듭니다. (예를 들어 DebugOld.app.ico DebugBranded.app.ico, ReleaseBranded.app.ico)

빌드 전 단계 만듭니다

copy "$(ProjectDir)$(ConfigurationName).app.ico" "$(ProjectDir)app.ico" 
2

는 응용 프로그램 아이콘으로 언급하는가? 수동으로 프로젝트 파일을 편집하고 다음과 비슷한 코드를 입력 할 수 있습니다.

<PropertyGroup> 
    <ApplicationIcon Condition=" '$(Configuration)' == 'Version1' ">Icon1.ico</ApplicationIcon> 
    <ApplicationIcon Condition=" '$(Configuration)' == 'Version2' ">Icon2.ico</ApplicationIcon> 
</PropertyGroup> 
<ItemGroup Condition=" '$(Configuration)' == 'Version1' "> 
    <Content Include="Icon1.ico" /> 
</ItemGroup> 
<ItemGroup Condition=" '$(Configuration)' == 'Version2' "> 
    <Content Include="Icon2.ico" /> 
</ItemGroup> 
관련 문제