Megosztás a következőn keresztül:


Egyéni műveletek hibakeresése

A dinamikus csatolású kódtárakon alapuló egyéni műveleteket a Windows hibakeresési eszközeivel végezheti el. A dinamikus hibakeresés nem használható olyan egyéni műveletekkel, amelyek végrehajtható fájlokon vagy szkriptekenalapulnak.

Az ebben a szakaszban ismertetett technikák segíthetnek a Windows Installer egyéni műveleteinek hibakeresésében. A Windows illesztőprogram-készlet (WDK) illesztőprogram-fejlesztési eszközeivel kapcsolatos információkért tekintse meg Windows-hibakeresési eszközeit.

A Windows Installer az MsiBreak környezeti változóval határozza meg, hogy melyik egyéni műveletet kell hibakeresésre használni. Ha rendelkezik hozzáféréssel az egyéni művelet forráskódjához, előfordulhat, hogy MsiBreak nélkül is használhatja a hibakeresést. Ha MsiBreak nélkül szeretné elindítani a hibakeresést, tegyen egy ideiglenes üzenetmezőt a művelet kódjának elejére. Amikor az üzenetmező megjelenik a telepítés során, csatolja a hibakeresőt az üzenetmezőt birtokoló folyamathoz. Ezután beállíthatja a szükséges töréspontokat, és bezárhatja az üzenetmezőt a végrehajtás folytatásához. Ezzel a módszerrel nem lehet hibakeresést végezni az egyéni művelet korábbi részeiben.

Ha az MsiBreak környezeti változót szeretné használni a testreszabott művelet hibakereséséhez, állítsa be az MsiBreak értékét a testreszabott művelet nevére a CustomAction tábla. Az MsiBreak lehet rendszer- vagy felhasználói környezeti változó. Ha a változó rendszerváltozóként van beállítva, szükség lehet a rendszer újraindítására az érték módosításakor az új érték észleléséhez.

Ha az MsiBreak környezeti változót egy beágyazott felhasználói felület hibakereséséhez szeretné használni, állítsa az MsiBreak értékét MsiEmbeddedUI értékre.

A Windows Installer csak akkor ellenőrzi az MsiBreak környezeti változót, ha a felhasználó rendszergazda. A telepítő figyelmen kívül hagyja az MsiBreak értékét, ha a felhasználó nem rendszergazda, még akkor is, ha ez egy felügyelt alkalmazás.

Ha egy egyéni műveletet hibakeres, amely emelt szintű (rendszerszintű) jogosultságokkal fut a végrehajtási sorrendben, csatolja a hibakeresőt a Windows Installer szolgáltatáshoz. A végrehajtási sorrendben megszemélyesített jogosultságokkal futtatott egyéni művelet hibakeresésekor a rendszer egy párbeszédpanelt jelenít meg, amely megmutatja, hogy melyik folyamatot kell hibakeresésre használni. Egy párbeszédpanel jelenik meg a felhasználónak, amely jelzi, hogy melyik folyamatot kell hibakeresni. Az emelt szintű egyéni műveletekről további információt Custom Action Securitycímű témakörben talál.

Miután a hibakereső a megfelelő folyamathoz lett csatolva, a telepítő azonnal elindít egy hibakereső töréspontot, mielőtt meghívja a DLL belépési pontját. Töréspontnál a DLL már be van töltve a folyamatba, és a belépési pont címét már meghatározták. Ha az egyéni művelet DLL-je nem tölthető be, vagy az egyéni művelet belépési pontja nem létezik, a rendszer nem aktiválja a töréspontot. Mivel a töréspont a DLL-függvény meghívása előtt aktiválódik, a töréspont aktiválása után a hibakeresővel lépjen tovább, amíg el nem éri az egyéni művelet belépési pontját. Másik lehetőségként beállíthat egy töréspontot bárhol az egyéni műveletben, és folytathatja a normál végrehajtást.

A Windows Installer közvetlenül a DLL-helyről hajtja végre a nem a bináris táblában tárolt DLL-eket. A telepítő nem ismeri a bináris táblában tárolt DLL eredeti nevét, és ideiglenes fájlnév alatt futtatja az egyéni DLL-műveletet. Az ideiglenes fájlnév formája MSI?????. TMP. Windows XP rendszerben ez az ideiglenes fájl biztonságos helyen van tárolva, általában <WindowFolder>\Installer.

Vegye figyelembe, hogy a hibakereséshez létrehozott számos DLL tartalmazza a megfelelő PDB-fájl nevét és elérési útját a DLL részeként. Ha ilyen típusú DLL-t keres egy olyan rendszeren, ahol a PDF-fájl a DLL-ben tárolt helyen található, a hibakereső eszköz automatikusan betöltheti a szimbólumokat. Olyan esetekben, amikor a PDF-fájl nem található a tárolt helyen, ahol a hibakereső nem támogatja a szimbólumok betöltését a tárolt helyről, vagy ha a DLL nem hibakeresési adatokkal lett létrehozva, előfordulhat, hogy a szimbólumfájlokat az ideiglenes DLL-fájllal rendelkező mappába kell helyeznie.

A telepítő hozzáadja az egyéni műveleti szkriptek hibakeresési adatait a telepítési naplófájlhoz.

There is a problem with this Windows Installer package. A script 
required for this install to complete could not be run. Contact your 
support personnel or package vendor.  {Custom action [2] script error 
[3], [4]: [5] Line [6], Column [7], [8] }