우리가 설정 한 간단한 버전 관리 시스템을 우리가 그들이 베타 디버그 또는 베타 릴리스 내가 MyApp를 할 수있는 파일 버전 정보를 이동비주얼 스튜디오 2008 처리기 wierdness
구축 여부를 내장 파일을 항상 표시하기 위해 구축을 위해. RC2와 EXE가 파일 설명은 항상 잘못 "베타 릴리스 버전"대신에 "BETA 디버그 버전"의라는 디버그 출력 디렉토리에 내장 그러나 IDE가 "#DEFINE을 나타냅니다 그러나
// version.h
// _DEBUG is defined by VS
#define _BETA
#ifdef _BETA
#define FILE_DESC1 _T("BETA ")
#else
#define FILE_DESC1 // blank on purpose
#endif
#ifdef _DEBUG
#define FILE_DESC2 _T("Debug Version ")
#else
#define FILE_DESC2 _T("Release Version ") // this is greyed out in the ide when building
#endif
#define FILE_DESC FILE_DESC1 FILE_DESC2
// myapp.rc2
include "version.h"
#ifndef _T
#define _T(x) x
#endif
VS_VERSION_INFO VERSIONINFO
FILEVERSION PROD_VER_MJR,PROD_VER_MIN,PROD_VER_UPD,JOBUILDER_BUILD
PRODUCTVERSION PROD_VER_MJR,PROD_VER_MIN
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904e4"
BEGIN
VALUE "CompanyName", COMPANY_NAME
VALUE "FileDescription", FILE_DESC
VALUE "FileVersion", JOBBUI_VERSION
VALUE "InternalName", "MyApp.exe"
VALUE "LegalCopyright", COPYRIGHT
VALUE "OriginalFilename", "MyApp.exe"
VALUE "ProductName", PRODUCT_NAME
VALUE "ProductVersion", PRODUCT_VERSION
VALUE "Comments", COMMENTS
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1252
END
END
version.h가 생성 FILE_DESC2 _T ("디버그 버전") "이 사용됩니다. 왜 이것이 될 수 있을까요? 나는 다른 프로젝트에서이 파일을 사용했고 제대로 작동합니다.
는
편집 : 정확함. 당신이 제안한대로 #error 지시문을 추가 한 다음 "치명적인 오류 RC1116 : 전처리 기 오류 후 종료되는 RC"리소스 컴파일러에서 #error (아마 알려지지 않았거나 지원되지 않음)와 원래 #define에 문제가있는 것처럼 보입니다. 이 주변의 어떤 방법으로 나는 궁금하다? sam 코드가 다른 VS2008 프로젝트에서 작업 중임을 나타냅니다. – Canacourse