[VB.Net]Moje aplikace nejde spustit na ostatních PC...
Dobrý den,naprogramoval jsem jednoduchou aplikaci ve Visual Basicu 2012 s Windows Media Player přehrávačem,WebBrowserem...
Vytvořil jsem Release programu,vytvořilo to složku se souborama:
"AxInterop.WMPLib.dll" "program.exe" "program.exe.config" "program.pdb" "program.vshost" "program.vshost.exe.config" "program.vshost.exe.manifest" "program.xml" "GvS.Controls.HtmlTextbox.dll" "Interop.WMPLib.dll"
A když ten "program.exe" spustím,v pohodě funguje,i když přesunu do jiné složky,ale když to pošlu na jiný pc(zkoušel jsem i s .dll knihovnama),kde je nainstalovaný nejnovější .NET Framework tak se to nespustí,nebo napíše špatná kompabilita...
Nejradši bych byl,kdyby šli ty .dll knihovny dát do toho .exe souboru...
Děkuji předem,za všechny rady/odpovědi :)
Co přesně to napíše?
Screenshot z Kamarádového PC(potvrzení že má .NET Framework,chybová hláška):
P.S. Jak jsem psal to program.exe ,tak jsem celý projekt přejmenoval na FoxRadio....
A nemáš to zkompilované pro verzi 4.5? Ta je totiž ve VS2012 standardní.
Právě že na .NET Framework 4 ... Více :
Nemáš tam náhodou nareferencované i nějaké knihovny, které na ostatních počítačích nejsou?
Asi ano,protože 3 reference se nazabalily do toho exe souboru(axinterop.wmplib.dll , Gvs.Controls.HtmlTextbox.dll , Interop.WMPLib.dll)....
Ale i když ten .exe soubor a ty dll na jiném počítači mám u sebe,tak i přesto nefunguje...
Děkuji mockrát za rady/odpovědi...
Nebude problém v tomhle?
msdn.microsoft.com
Bohužel,i tak nefunguje,když jsou všechny potřebné .dll knihovny u sebe na jiném PC,má tam i Windows Media Player,Microsoft .NET Framework,píše to stejnou hlášku jako na druhém příspěvku...
Ale na mém PC to s .dll knihovnama funguje...
Děkuji za všechny rady/odpovědi.. :)
Ale má tam správnou verzi WMP? Protože pro XP je nejvyšší verze 11, zatímco od Visty výš je to 12.
Mám Windows Media Player 12 a zkoušel jsem to na PC,kde je taky,nejde to stále... :(
Daj si to do try..catch a zaloguj si celú výnimku.
Tá aplikácia je skompilovaná ako 32-bitová/64-bitová/AnyCPU? Ty máš koľko-bitový OS? Na inom PC je koľko-bitový OS?
Verzia Windows Media Playera je aká u teba a aká na tom inom PC? Je naozaj rovnaká?
Padne to hneď pri snahe o vytvorenie toho COM objektu alebo až na nejakom konkrétnom volaní? Mal by si si tam pridať logovanie a zistiť, kde presne ti to padá.
Skontroluj, že CLSID toho COM objektu je na tom inom PC v registroch tam, kde má byť (HKCR/CLSID na 32-bit alebo HKCR/Wow6432node/CLSID na 64-bit).
Podle hlášky bych si tipnul, že mu to spadne už při samotném spuštění programu a to neodchytí.
Target CPU:AnyCPU
Mám 64bit OS na druhém je také 64bit OS
Je stejná(WMP 12)...
Ty registry,log zkontroluji zítra,až tu bude..
Moc krát děkuji za všechny rady/odpovědi :)
Ja myslim ze chyba bude v tvojom programe, napr. ze si neosetril vstupy, error navratove hodnoty, apod (ako zvycajne zaciatocnici maju vo zvyku). Hlaska program musi byt ukoncen znamena zvycajne nejaku HW-exception (nevykonatelnu intrukciu CPU), napr pouzitie pointra NULL apod (ked nahodou nejaka fcia vratila NULL namiesto pointra lebo error apod). Proste exception. V tej hlaske sa da klinut na to ze jake data sa odoslu tam moze byt viac info ale pochybujem ze VB vyvojar z toho bude mudry (zvycajne je tam HW exception zakodovana ako cislo, vypis stacku, apod, co VB vyvojara je spanielska dedina)
co je obsahem souboru program.vshost.exe.manifest (je to text)?
manifest pojmenuj po spouštěči- program.exe.manifest
pochopitelně můžeš použít suanalyzer nebo vytvořit shim: http://www.virtualizationadmin.com/articles-tutori als/terminal-services/management-tools/microsoft-a pplication-compatibility-tools-part2.html
Hezký den,
pokud se problém nevyřešil, pak zkuste šanci zde: Forum.aspx . Nenechte se mást nadpisem "Visual Basic .NET (2005, 2008, 2010)", i na Visual Basic 2012 dávají uživatelé odpovědi.