나는 매일 밤마다 vbscript를 사용하여 빌드를 증가시키는 rc 파일을 가지고 있습니다. FILEVERSION과 PRODUCTVERSION을 증가 시키지만 모든 키워드 값을 증가시킬 수는 없습니다. 빌드가 VS2012입니다. ","3.0.0.0vbscript를 사용하여 resourse 파일의 모든 값을 증가 시키십시오.
rcfile = "C:\Build\VS2012Build\SHClientServer\SHSApplicationDLL\SHSApplicationDLL.rc"
Set fso = CreateObject("Scripting.FileSystemObject")
Set re = New RegExp
re.Global = True
Function IncMaint(m, g1, g2, g3, pos, src)
IncMaint = g1 & (Int(g2)+1) & g3
End Function
rctext = fso.OpenTextFile(rcfile).ReadAll
re.Pattern = "((?:PRODUCTVERSION|FILEVERSION) \d+,\d+,)(\d+)(,\d+)"
rctext = re.Replace(rctext, GetRef("IncMaint"))
re.Pattern = "(""(?:ProductVersion|FileVersion)"", ""\d+, \d+,)(\d+)(, \d+"")"
rctext = re.Replace(rctext, GetRef("IncMaint"))
fso.OpenTextFile(rcfile, 2).Write rctext
나는 또한 값 "VALUE"의 FileVersion을 증가 할 필요가 "와 VALUE"
이
는 RC 파일입니다// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// Hebrew (Israel) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_HEB)
LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT
#pragma code_page(1255)
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 3,0,0,0
PRODUCTVERSION 3,0,0,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040004b0"
BEGIN
VALUE "FileDescription", "SHSAppli Dynamic Link Library"
VALUE "FileVersion", "3.0.0.0"
VALUE "InternalName", "SHSAppli"
VALUE "LegalCopyright", "Copyright (C) 2011"
VALUE "OriginalFilename", "SHSAppli.dll"
VALUE "ProductName", "SHSAppli Dynamic Link Library"
VALUE "ProductVersion", "3.0.0.0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x400, 1200
END
END
#endif // Hebrew (Israel) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
이것은 스크립트입니다 PRODUCTVERSION ","당신의 도움에 대한 3.0.0.0 "
감사
그래도 여전히 작동하지 않습니다. – Newton
@Ekkehard 파일이 어떻게 인코딩되는지는 중요하지 않습니다. 맞습니까? 일단 파일을 OpenTextFile과 ReadAll로 VBScript로 읽으면 유니 코드 문자열이됩니다. 그리고'RegExp'는 기본적으로 유니 코드 문자열에서 작동합니다. – Bond
@ 본드 - 문제가되는 증거를 보려면 http://stackoverflow.com/questions/21396199/vbs-script-attempting-to-write-to-rc-file-returns-error를 참조하십시오. –