Pergunta

Estou usando o Delphi 2007 Pro. Eu tenho um pacote de tempo de execução que inclui um número de componentes compostos estou em desenvolvimento, que são baseados em TFrames. Há também um pacote de design relacionado que instala esses componentes para a paleta de ferramentas. Estes descendentes TFrame usar um número de componentes de terceiros, por várias razões, e também herdam um do outro, como uma hierarquia de classes. Até agora (e com a ajuda de alguns bons conselhos aqui), esta abordagem está a funcionar muito bem para o que eu quero realizar.

Recentemente eu tive um problema, no entanto, a compilação / construção do pacote de tempo de execução. Inicialmente, ele tinha a ver com algum conflito centrado na nxEventLog.pas, os detalhes dos quais, infelizmente, eu não conseguiu gravar, mas era basicamente algo ao longo das linhas de "a definição para este método não concorda com a definição anterior para isso" como o que você começa quando sua declaração de implementação não concordar com sua declaração de classe. Este arquivo é um arquivo NexusDB (o aplicativo usa uma NexusDB servidor embutido).

Eu tentei várias coisas, mas nunca foi bem sucedido na obtenção do conflito para ir embora. O mais perto que cheguei estava sobre compilação, tendo o pedido do IDE acrescentando TRUCKLOAD de unidades completamente alheios ao contém / usa cláusula. Mais sobre isso mais tarde, mas se eu continuei com isso, ele ainda não iria funcionar. O arquivo nxEventLog não tinha mudado de seu estado original.

Incapaz de furão fora porque este erro foi aparecendo - foi aparecendo em arquivos Nexus, não o meu pacote ou unidades real, e eu tinha mudado nada no código Nexus - eu finalmente fui em frente e apenas completamente desinstalado Nexus e procurou manualmente para tentar se certificar de que eu tinha apagado todos os arquivos DCU e BPL relacionadas, e, em seguida, reinstalado-lo. (Eu estou correndo Nexus 2,07)

Ao disparar o IDE, eu tenho os seguintes erros:

bds.exe - Ponto de entrada não encontrado
---------------------------
O procedimento de entrada ponto
@ Nxsddatadictionary @ TnxBaseTableDescriptor @ LoadFromReader $ qqrp15Classes @ TReader não pôde ser localizado na biblioteca de vínculo dinâmico NexusDB207sd110.bpl.
---------------------------
OK

Seguido por:

Não é possível carregar pacote .... NexusDB207dv110.bpl
Não é possível carregar pacote .... cmTPPanels_D2007_DesignReg.bpl
O procedimento especificado não oculd ser encontrada.
Você quer tentar carregar este pacote na próxima vez que um pacote é carregado?

Uma vez que eu desinstalado os cmTPPanels runtime / pacotes de design (o meu conjunto de componentes), via Component -> Instalar Pacote -> Remove, meus outros aplicativos "normal Nexus DB" parecem funcionar bem, incluindo aqueles que incluem ocmponent nxEventLog do Nexus. Isto parece indicar que o problema é definitivamente em meus pacotes de instalação em algum lugar.

Assim, tendo confirmado que minha instalação Nexus não parece ser o problema real, que abriu o grupo de projeto que contém ambos os pacotes. Construir (ou compilar) o pacote de tempo de execução, a Delphi IDE me dá a mesma caixa de diálogo que eu mencionei acima:

"As seguintes alterações são necessárias para fazer este pacote compatível com outro pacote instalado. Escolha OK para aplicar essas alterações e reconstruir o pacote."

Adicionar dsnap.
dsnap contém unidade implícita (s) DBClient, Provider, DataBkr, MidConst, Midas, DSIntf.

Adicionar ibxpress.
ibxpress contém (s) unidade IBUtils implícitas, IB, IBSQLMonitor, IBHeader, IBIntf, IBXConst, IBXMLHeader, IBSQL, IBBlob, IBCustomDataSet, IBDatabase, IBErrorCodes, IBDatabaseInfo,
IBExternals, IBInstallHeader, IBServices.

Adicionar IndyCore.
IndyCore contém unidades implícita (s) IdIOHandlerSocket, IdSocks, IdIOHandlerStack, IdBuffer, IdResourceStringsCore, IdIntercept, IdCustomTransparentProxy, IdExceptionCore, IdSocketHandle, IdIOHandler, IdTCPConnection, IdReplyRFC, IdReply, IdTCPClient, IdIPAddress, IdAssignedNumbers.

Adicionar IndySy-tronco.
IndySystem contém implícito unidade (s) IdBaseComponent, IdGlobal, IdStreamVCL, IdSysNativeVCL, IdSysVCL, IdSysBase, IdSysWin32, IdResourceStrings, IdException, IDSYS, IdStream, IdObjs, IdComponent, IdStack, IdStackWindows, IdWship6, IdWinSock2, IdStackConsts, IdStackBSDBase, IdAntiFreezeBase.

Adicionar Rz30DBCtls90.
Rz30DBCtls90 contém unidade implícita (s) RzDBNav, RzDBLbl, RzDBStat.

Adicionar lmdweb30_d10.
lmdweb30_d10 contém unidades implícitos (s) LMDWebHTTPGet, LMDHTMLObjectUnit, LMDFSSupport, LMDHTTPSupp, LMDStringsSupport, LMDURLSupp, LMDRASSupport, LMDRASCF, LMDWebConst, LMDRAS, LMDSyncUnit, LMDWebBase, LMDWebLex, LMDWebHTMLLex, LMDWebDownloadFormUnit, LMDDownload, LMDInetConst, LMDWebConfig, LMDWebInfo.

Adicionar lmddsg30_d10.
lmddsg30_d10 contém unidades implícita (s) LMDDsgPropInsp, LMDDsgPropEditors, LMDDsgMenuEditor, LMDDsgObjects, LMDDsgClass, LMDDsgCst, LMDDsgCollectionEditor, LMDDsgStrsEditor, LMDDsgPropPage, LMDDsgModule.

Adicionar lmdstorage10_d10.
lmdstorage10_d10 contém (s) unidade LMDStorFormProperties implícitas, LMDStorFormHook, LMDStorBase, LMDStorConsts, LMDStorPropertiesStorage, LMDStorCommon, LMDStorINIVault.

Adicionar ExceptionExpert11.
ExceptionExpert11 contém implícito unidade (s) ExceptionLog, EDisAsm, EHash, EListView, EConsts, etypes, ELogManager, EEncrypt, EBase64, EXMLBuilder, ecore, EWebTools, eZip, EZlib, ESockets, Elang, IGANCHO, EDebug, ELeaks.

Adicionar RemObjects_Core_D11.
RemObjects_Core_D11 contém (s) uROClasses unidade implícitas, uROSerializer, uROXMLIntf, uROMSXMLImpl, uRORes, uROMSXML2_TLB, uROClient, uRODLToXML, uRODL, uROTypes, uROHTTPTools, uROClientIntf, uROEncryption, uROZlib, uROCipher1, uROHash, uRODECUtil, uRODECConst, uROCipher, uROCiphers, uROBinaryHelpers, uROCompression , uROEventRepository, uROServerIntf, uROSessions, uRODynamicRequest, uRORemoteService, uROThreadPool, uROServer, uROAsync, uROThread, uROBinMessage, uROStreamSerializer.

Adicionar RemObjects_Indy_D11.
RemObjects_Indy_D11 contém unidade implícita (s) uROSuperTCPChannel, uROSCHelpers.

Adicionar DataAbstract_Core_D11.
DataAbstract_Core_D11 contém unidade implícita (s) uDADataTable, uDASupportClasses, uDARes, uDABusinessProcessor, uDAEngine, uDASQL92QueryBuilder, uDASQL92Interfaces, uDAWhere, uDAInterfaces, DataAbstract4_Intf, DataAbstract3_Intf, uDAHelpers, uDAClasses, uDAMemDataTable, uDAMemDataset, uDAExpressionEvaluator, uDAMacros, uDAUtils, uDAXMLUtils, uDADriverManager, uDAInterfacesEx, uDADelta , uDARegExpr, uDAScriptingProvider, uDAOracleInterfaces, uDAMacroProcessors, uDADataStreamer, uDACDSDataTable, uDARemoteDataAdapter, uDAReconcileDialog, uDAReconcileDialogDetails, uDARemoteDataAdapterRequests, uDABinAdapter.

Adicionar VirtualTreesD11.
VirtualTreesD11 contém (s) VirtualTrees unidade implícitas, VTAccessibilityFactory.

Adicionar VirtualShellToolsD11.
VirtualShellToolsD11 contém unidade implícita (s) VirtualExplorerTree, ColumnForm, VirtualResources, VirtualShellAutoComplete, VirtualShellNotifier, VirtualScrollbars.

Adicionar dxBarDBNavD11.
dxBarDBNavD11 contém unidade implícita (s) dxBarDBNav, dxBarDBNavStrs.

Adicionar dxBarExtDBItemsD11.
dxBarExtDBItemsD11 contém (s) dxBarExtDBItems unidade implícitas.

Adicionar cxVerticalGridD11.
cxVerticalGridD11 contém implícito unidade (s) cxDBVGrid, cxVGridViewInfo, cxVGridUtils, cxVGrid, cxVGridNewCategory, cxVGridConsts.

Adicionar dxNavBarD11.
dxNavBarD11 contém implícito unidade (s) dxNavBar, dxNavBarExplorerViews, dxNavBarConsts, dxNavBarGraphics, dxNavBarStyles, dxNavBarBase, dxNavBarViewsFact, dxNavBarCollns, dxNavBarVSToolBoxViews, dxNavBarBaseViews, dxNavBarOffice11Views, dxNavBarOfficeViews, dxNavBarXPViews.

Adicionar dxLayoutControlD11.
dxLayoutControlD11 contém implícito unidade (s) dxLayoutControl, dxLayoutCustomizeForm, dxLayoutEditForm, dxLayoutCommon, dxLayoutLookAndFeels, dxLayoutControlAdapters.

Adicionar dxMasterViewD11.
dxMasterViewD11 contém (s) dxMasterViewColumns unidade implícitas, dxMasterView, dxMasterViewStrs.

Adicionar dxdbtrD11.
dxdbtrD11 contém unidade implícita (s) dxdbtrel, dxlocate, dxtree, dxdbtree.

Adicionar dxPSCoreD11.
dxPSCoreD11 contém unidade implícita (s) dxPSEdgePatterns, dxPSUtl, dxPSImgs, dxPSRes, dxPrnDev, dxPSGlbl, dxPSEngn, dxPSSngltn, dxPSESys, dxBase, dxPSCore, dxPSPrVwStd, dxPSPopupMan, dxPgsDlg, dxWrap, dxPSHFToolBarBld, dxPSfmAutoHFTextFmt, dxPSEvnt, dxPrnPg, dxPpAttr, dxBkGnd, dxFEFDlg , dxPcPrVw, dxExtCtrls, dxExtCtrlsStrs, dxPSForm, dxPSAutoHFTextMnuBld, dxfmDfnStl, dxfmMnPg, dxfmClr, dxPreVw, dxPSPrVw, dxfmZoom, dxPSExtDlgs, dxfmPNFmt, dxfmDTFmt, dxPSPrVwOpt, dxPSfmCompositionDsg, dxPSfmCompositionAdd, dxPSCompsProvider, dxPSXplorerTreeView, dxPSfmReportProperties, dxPSPgsMnuBld, dxfmChFN, dxPSfmTtl, dxPSCPDsg, dxPSfmLnkAdd , dxPSfmEditDesc, dxPSFillPatterns, dxPrnDlg.

Adicionar dxPScxCommonD11.
dxPScxCommonD11 contém unidades implícitas (s) dxPScxCommon.

Adicionar dxPScxGridLnkD11.
dxPScxGridLnkD11 contém unidades implícitas (s) dxPScxGridLnk.

Adicionar NexusDB207se110.
NexusDB207se110 contém unidade implícita (s) nxseAutoComponent, nxseAllEngines, nxseRecordCompressionEngineSmart, nxseRecordEngineVariable, nxseFulltextEngineCursor, nxseFulltextEngineTable, nxseRefIntEngine, nxseJournalEngine, nxseSortEngineMerge, nxseTemporaryStorageChunked, nxseRecordEngineStatic, nxseIndicesEngineSimple, nxseIndexBase, nxseHeapEngineCached, nxseBlockHeapEngineNonfragmenting, nxseBlobEngineSimple, nxseIndexEngineStaticKeyBstarTree, nxseHeaderAccess, nxseEncryptionEngineBlowfishRC4, nxseBlobEngineSegmented, nxseAutoIncEngineSimple, nxseStreamEngineSimple .

Adicionar NexusDB207sr110.
NexusDB207sr110 contém unidade implícita (s) nxsrSqlEngineBase, nxExeConst, nxsrServerEngine, nxsrBlobHandlerCaching, nxsrTimeoutHandling, nxsrTypes, nxsrBlobHandlerBase, nxsrBufferManager, nxsrFileImplWin32, nxsrStrings, nxsrEncryptionEngineBase, nxsrConst, nxsrTemporaryStorageBase, nxsrBlobEngineBase, nxsrSubEngineBase, nxsrBlobHandlerPassthrough, nxsrRecordMapperEngine, nxsrFieldMapperEngineAutoInc, nxsrFieldMapperEngine, nxsrFieldMapper, nxsrSortEngineBase, nxsrFulltextEngineBase , nxsrIndexEngineBase, nxsrRecordEngineBase, nxsrRefIntEngineBase, nxsrAutoIncEngineBase, nxsrStreamEngineBase, nxsrTableLockContainer, nxsrDataDictionary, nxsrFileHandling, nxsrServerCursorMapping, nxsrSystemStorage, nxsrRecordCompressionEngineBase, nxsrHeapEngineBase, nxsrBlockHeapEngineBase.

Adicionar NexusDB207sq110.
NexusDB207sq110 contém unidades implícita (s) nxsqlEngine, nxsqlFunctions, nxsqlDataDef, nxsqlFunctionOrganizer, nxsqlCondExp, nxsqlTableExp, nxsqlViews, nxsqlProxies, nxSQLParse, nxsqlPSM, nxsqlTest, CocoaBaseW, nxsqlBase, nxsqlDataManip, nxSQLTok, nxSQLProxiesIntf.

Adicionar NexusDB207lg110.
NexusDB207lg110 contém unidade implícita (s) nxlgEventLogDispatcher, nxlgEventLog.

Adicionar NexusDB207dv110.
NexusDB207dv110 contém unidade implícita (s) nxServerManager, nxBaseServerComp, nxConfigSettings.

Adicionar MPCommonLibD11.
MPCommonLibD11 contém unidade implícita (s) MPDataObject, MPCommonObjects, MPCommonUtilities, MPResources, MPShellTypes, MPThreadManager, MPShellUtilities.

O que é estranho sobre isso, além do fato de que inclui apenas sobre tudo, mas a pia da cozinha, é que um número dos pacotes mencionados não são ainda relevantes para os componentes incluídos neste pacote Estou tentando instalar; DataSnap, Indy, IBExpress, RemObjects dados abstratos, etc -. Nenhum destes são ainda referenciado em meus componentes

Se eu clicar em "OK" para todas estas adicionadas unidades / pacotes, mais ensues caos, e não compilar.

As pastas NexusDB, e as pastas que estes componentes Eu estou em desenvolvimento reside, estão todos no meu caminho da biblioteca, com o meu co personalizadoúltima mponents listados.

Eu estou trabalhando em uma máquina virtual, e pode instantâneo conforme necessário, mas eu não consigo contornar este problema, independentemente, e é claro que eu não tenho o suficiente compreensão profunda de como funciona o compilador saber para onde olhar para o diagnóstico do problema. Qualquer coisa que alguém pode mencionar que poderia me ajudar a fazê-lo, seria muito apreciado.

Foi útil?

Solução

Como regra, esses erros vêm de ter incompatíveis, ou, mais comumente, várias versões do mesmo BPL e / ou arquivos DCP no caminho. Faça uma pesquisa completa do seu sistema para todos os BPLs e DCPs, e certifique-se há apenas uma cópia de cada um.

Como acompanhar esses tipos de erros para baixo pode ser uma dor enorme na bunda. : - /

Outras dicas

Se você tem vários pacotes relacionados, a ordem de construção e instalação é extremamente importante. Se o pacote A depende de B e alguns unidade em mudanças B, às vezes vai muito errado. Você pode reinstalar o Delphi, mas o seu melhor para reinstalar os pacotes em ordem.

Primeiro remova todos os pacotes. (Com pacotes inslall e remover tudo o que puder.)

Em seguida, verifique o registro. Às vezes, algumas informações é deixado que pode causar problemas mais tarde.

In the HKCU\Software\ [Borland|Codegear]\[Version]\Disabled Packages, there is a list of packages that are disabled. Have a look at these. And remove anything you need.
In the HKCU\Software\ [Borland|Codegear]\[Version]\Known Packages, there is a list of all known packages. Have a look at these and remove all suspicious packages.

Para versões mais antigas esta informação pode ser encontrado em: Nos pacotes de HKLM \ Software \ Borland [versão] \ conhecidos

Tente reiniciar Delphi pela sanidade e reconstruir e instalar qualquer coisa necessária na ordem correta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top