Ako sa informácie o verzii prírastok po každej stavať do Visual c ++

Preklady článku Preklady článku
ID článku: 237870 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

SUHRN

Visual C++ nemá funkcia automaticky narastal informácie o verzii zdroj vášho projektu po každom stavať. Tento článok popisuje jeden spôsob, ako poskytnúť takú vlastnosť.

DALSIE INFORMACIE

Môžete napísať program zmeniť zdroj kompilátor (.rc) súbor namiesto pomocou kroky popísané tu. Avšak, RC súbor je pod kontrolou Visual C++. Visual C++ upravuje RC súbor po??as ukladania, a to môže ovplyvniť verzia zdrojov. Podľa postupu uvedeného v tomto oddiele sa dajú použiť pre akýkoľvek projekt, Visual C++. Tento príklad používa Microsoft základ tried projektu.

Vytvoriť nový projekt pomocou Appwizard MFC (EXE) a hovoria MyProject. MyProject bude mať MyProject.rc súbor, ktorý obsahuje MyProject.rc2. Súbor .rc2 je určený pre používateľom definovaný zdrojov. Postupujte podľa týchto krokov narastal MyProject je verzia informácie po každej stavať:
  1. Verzia prostriedok odstrániť zo súboru .rc a umiestnite ju do súboru .rc2:

    1. Otvorte MyProject.rc a MyProject.rc2 (nájsť v priečinku Res), v textovom editore. Pomocou editora Visual C++, kliknite na tlačidlo Otvorené na Súbor menu a vyberte Text v Otvorená ako zoznam MyProject.rc súboru.
    2. Nájsť verziu zdrojov vyhlásenia MyProject.rc. To by mal vyzerať takto:
      /////////////////////////////////////////////////////////////////////// 
      // 
      // Version
      // 
      
      VS_VERSION_INFO VERSIONINFO
       FILEVERSION 1,0,0,1
       PRODUCTVERSION 1,0,0,1
       FILEFLAGSMASK 0x3fL
      #ifdef _DEBUG
       FILEFLAGS 0x1L
      #else
       FILEFLAGS 0x0L
      #endif
       FILEOS 0x4L
       FILETYPE 0x1L
       FILESUBTYPE 0x0L
      BEGIN
          BLOCK "StringFileInfo"
          BEGIN
              BLOCK "040904b0"
              BEGIN
                  VALUE "Comments", "Sample Application\0"
                  VALUE "CompanyName", "Microsoft Corp.\0"
                  VALUE "FileDescription", "MyProject MFC Application\0"
                  VALUE "FileVersion", "1, 0, 0, 1\0"
                  VALUE "InternalName", "MyProject\0"
                  VALUE "LegalCopyright", "Copyright (C) 1999\0"
                  VALUE "OriginalFilename", "MyProject.EXE\0"
                  VALUE "ProductName", "MyProject Application\0"
                  VALUE "ProductVersion", "1, 0, 0, 1\0"
              END
          END
          BLOCK "VarFileInfo"
          BEGIN
              VALUE "Translation", 0x409, 1200
          END
      END
      							
    3. Vystrihnúť verzia zdrojov zo súboru MyProject.rc a prilepte ju do súboru MyProject.rc2 nižšie komentár "Pridať manuálne upravili tu zdrojov." Ak sa chcete dozvedieť, ako to, čo každý z polí v prostriedku znamená, nájdete VERSIONINFO zdroja v Pomocníkovi.
  2. Údaje o FILEVERSION a PRODUCTVERSION nahraďte makrá FILEVER a PRODUCTVER. Podobne, nahraďte reťazec údaje o FileVersion a ProductVersion makrá, STRFILEVER a STRPRODUCTVER.
  3. Pridať # zahŕňajú VersionNo.h bezprostredne pred VS_VERSION_INFO zdrojov výkaz. Teraz verziu zdrojov bude vyzerať takto:
    /////////////////////////////////////////////////////////////////////// 
    // 
    // Version
    // 
    #include "VersionNo.h"
    VS_VERSION_INFO VERSIONINFO
     FILEVERSION FILEVER
     PRODUCTVERSION PRODUCTVER
     FILEFLAGSMASK 0x3fL
    #ifdef _DEBUG
     FILEFLAGS 0x1L
    #else
     FILEFLAGS 0x0L
    #endif
     FILEOS 0x4L
     FILETYPE 0x1L
     FILESUBTYPE 0x0L
    BEGIN
        BLOCK "StringFileInfo"
        BEGIN
            BLOCK "040904b0"
            BEGIN
                VALUE "Comments", "Sample Application\0"
                VALUE "CompanyName", "Microsoft Corp.\0"
                VALUE "FileDescription", "MyProject MFC Application\0"
                VALUE "FileVersion", STRFILEVER
                VALUE "InternalName", "MyProject\0"
                VALUE "LegalCopyright", "Copyright (C) 1997\0"
                VALUE "OriginalFilename", "MyProject.EXE\0"
                VALUE "ProductName", "MyProject Application\0"
                VALUE "ProductVersion", STRPRODUCTVER
            END
        END
        BLOCK "VarFileInfo"
        BEGIN
            VALUE "Translation", 0x409, 1200
        END
    END
    					
  4. Vytvorte hlavičku súbor s názvom VersionNo.h v rovnakom adresári ako váš projekt. Tento súbor bude obsahovať nasledujúce vyhlásenie, ktoré sú definície pre makrá použité v kroku 2:
    #define FILEVER        1,0,0,1
    #define PRODUCTVER     1,0,0,1
    #define STRFILEVER     "1, 0, 0, 1\0"
    #define STRPRODUCTVER  "1, 0, 0, 1\0"
    						
    Poznámka: Pridať obyčajný a prepravu návratky znaky v poslednom riadku.

    Teraz, MyProject.rc súbor obsahuje MyProject.rc2 a MyProject.rc2 súbor obsahuje VersionNo.h.
  5. Obsah súboru VersionNo.h sa upravia pomocou makra programu Visual Basic Script. Makro popísané nižšie rukoväte Visual C++ BuildFinish udalosť, takže to bude, nie vyhozen, kým dokončí stavať. Vždy, keď sa nazýva tento skript VB kód, najprv inkrementuje čísla verzií vo vnútri hlavička súboru o pevnú čiastku, potom sa súbor uloží a zatvorí. Počas následných stavať, číslo novej verzie je súčasťou spustiteľný.

    Nainštalovať a používať kód skriptu VB, vykonajte nasledovné:

    1. Otvorte existujúci súbor DSM (makro) alebo vytvorte nový súbor DSM v Visual C++. Ak chcete vytvoriť nový súbor, kliknite na tlačidlo Nové na Súbor menu vyberte Makro súbor na Súbory karte, pomenujte ho a kliknite na ok.
    2. Prilepte nasledujúci skript VB kód nižšie (prázdny DSM súbor nemožno nainštalovať v Visual C++; ďalší krok vysvetľuje inštalácia):
      Function GetProjectDir(FullName)
      
      'VC++ doesn't provide any method for getting the path of the active project
      'See the VB Script reference for more information on the VB Script functions 
      'used in this function
      
      Dim proj_path
      proj_path = Split(StrReverse(FullName),"\",-1,1)
      
      Dim count
      count = UBound(proj_path)
      
      Dim full_path
      full_path = ""
      Dim i
      
      for i = 1 to count 
      	full_path = full_path & "\" & proj_path(i)
      next
      
      GetProjectDir = StrReverse(full_path)
      
      End Function
      
      
      Sub ReplaceText(selection, count, incrementby)
      
      'selection represents the TextSelection object
      'count represents the position of the version number to be incremented
      'incrementby represents a number that will be added to the existing version number
      
      selection.WordRight dsMove, count
      selection.WordRight dsExtend, 1
      Dim str
      str = selection.Text
      str = str + incrementby
      
      selection.Text = str
      
      End Sub
      
      
      Sub Application_BuildFinish(numError, numWarning)
      
      'This event will be triggered after every build of a project
      'You can check numError and/or numWarning to determine if you want to continue
      'If numError <> 0 Then
          'exit sub
      'Obtain the full path of the active project
      Dim full_path
      full_path = GetProjectDir(ActiveProject.FullName)
      
      full_path = full_path & "versionno.h"
      
      'Open the VersionNo.h file
      Documents.Open full_path
      
      'Obtain the TextSelection object
      Dim selection
      set selection = ActiveDocument.Selection
      selection.StartOfDocument 
      
      'Increment the version information
      ReplaceText selection, 9, 1
      selection.LineDown
      selection.StartOfLine
      ReplaceText selection, 9, 1
      selection.LineDown
      selection.StartOfLine
      ReplaceText selection, 10, 1
      selection.LineDown
      selection.StartOfLine
      ReplaceText selection, 10, 1
      
      ActiveDocument.Save
      ActiveDocument.Close
       
      End Sub
      								
      POZNÁMKA: Tento kód je nepodporované vzorky. Možno ho upraviť pre vaše stavať scenár.
    3. DSM súbor nainštalovať, ak už nie je nainštalovaný. Ak chcete nainštalovať, kliknite na tlačidlo Prispôsobiť na Nástroje ponuky, kliknite na tlačidlo Doplnkov a makier súbory na karte Prehľadávať vyberte DSM súbor a kliknite na tlačidlo Zatvorte.
  6. Vyberte Vybudovať MyProject.exe z Vybudovať ponuka. Po dokončení stavať, otvorte súbor VersionNo.h. Bude obsahovať nasledujúce vyhlásenie:
    #define FILEVER        1,0,0,2
    #define PRODUCTVER     1,0,0,2
    #define STRFILEVER     "1, 0, 0, 2\0"
    #define STRPRODUCTVER  "1, 0, 0, 2\0"
    						
    Ak budete stavať kód opäť, táto verzia informácie v zahrnuté v spustiteľný a informácie o verzii zvýši. Môžu zaviesť niektoré kód makra popísané vyššie na zabránenie incrementing čísla verzií, ak stavať vyrába chyby.

ODKAZY

Ďalšie informácie o objektového modelu Visual C++ pozri nasledujúcu tému na lokalite MSDN Library:
http://msdn.Microsoft.com/en-us/library/aa712880 (VS.71) .aspx

Ďalšie informácie o VB Script makrá, pozri nasledujúcu tému na lokalite MSDN Library:
http://msdn.Microsoft.com/en-us/library/aa247202 (VS.60) .aspx

Ďalšie informácie o VB Script jazykom, pozri nasledujúcu tému na lokalite MSDN Library:
http://msdn.Microsoft.com/en-us/library/d1wf56tt (vs.71) .aspx

Pre viac informácií o výkaze Visual C++ VERSIONINFO zdrojov, pozri nasledujúcu tému na lokalite MSDN Library:
http://msdn.Microsoft.com/en-us/library/aa381043.aspx

Vlastnosti

ID článku: 237870 - Posledná kontrola: 23. októbra 2011 - Revízia: 2.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
Kľúčové slová: 
kbautomation kbdevstudio kbhowto kbide kbscript kbvcobj kbmt KB237870 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:237870

Odošlite odozvu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com