Chyba při spouštění aplikace na jiném stroji, než kde byl vyvíjen   zodpovězená otázka

C#, VB.NET, Offtopic

Dobrý den,

mám takový možná paradoxní dotaz ale, mám hotovou vlastní miniaplikaci, která pracuje s jedním databázovým souborem mdb který je součástí projektu. Nic světoborného ale funguje to a teď bych to potřeboval nějak celé zabalit do nějakého tvaru aby se to dalo nakopírovat třeba na USB Flashku a přenést na jiný kompl. Zkoušel jsem přenést vše co Visual Studio vygeneruje v adresáři \bin ale očividně to nestačí.

Poradil by prosím někdo zkušenější jak na to?

Mockrát děkuji za snahu nebo link.

Petr

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Předpokládám, že aplikace je napsaná ve VB.NET/C# a na cílovém počítači je nainstalována příslušná verze .NET Frameworku. Pokud ne, nemá cenu se dále bavit.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Ano Váš předpoklad je zcela správný. Přesně tak to je. Aplikace je v VB.NET a na cílovém počítači je stejný .NET Framework jako na zdroji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A co to tedy přesně píše za vyjímku na cílovém počítači při pokusu o spuštění?

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

No právě, moc toho najevo bohužel nedává.

Připojil bych ofocený obrázek ale nevím jak jej tu připojit tak aspoň slovně cituji : BracketRunner has encountered a problem and needs to close. We are sorry for the inconvenience.

Jak elegantní že?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

- Jaký je operační systém na cílovém počítači?

- Jaká je verze .NET Frameworku na cílovém počítači?

- Běží na cílovém počítači nějaký software, který by mohl ohrozit nebo omezit chod vaší aplikace (antivirový software, firewall, antispyware)?

- Co je to BracketRunner (název vaší aplikace)?

- Používáte ve vaší aplikaci nějaké komponenty třetích stran?

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Vezmu to popořadě:

- WinXP

- .NET Framework 2.0 SP1

- řekl bych nic co by mělo vadit (Avast, Kerio)

- jo, BracketRunner je jméno té aplikace

- ne

Nejsem si ale jistý jestli když jen překopíruju vše ze složky bin po kompilaci jestli to stačí. Na nic chytřejšího jsem zatím nepřišel. Ale přijde mi to takové divné, žeby něco takového jako Visual Studio, kde je designer na kde co neumělo po dokončení projektu to sbalit do nějakého "exáče" Nikdy jsem to zatím nepotřeboval a tak bohužel nevím co vlastně mám přesně hledat, nebo jak se to dělá v takových případech.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ve většině případů (pokud nejsou reference na knihovny v GAC nebo COM rozhraní) stačí zkopírovat vše ze složky bin. Jestli k tomu uděláte instalátor je čistě na vás. Ve vašem případě bych zkusil zcela vyřadit Avast a Kerio a zkusit to poté. Také bych to nespouštěl z flešky ale z pevného disku a pod uživatelem s členstvím v Administrators. Vyřazovacím způsobem byste na to mohl postupně přijít.

nahlásit spamnahlásit spam 0 / 2 odpovědětodpovědět

Pane, díky moc za Váš čas a tipy k tomuto problému. Zkusím to ještě takto jak píšete.

Tzn. že jiná "finta" v tom není? Mám na mysli nějaké nastavení ve Visual Studiu nebo tak něco? Vím že ve Visual Studiu v menu pod Build je ještě volba Publish. Ale popravdě nikdy jsem to ještě nepoužil tak netuším k čemu by to mohlo být dobré.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Určitě v tom nic jiného není. Funkce Publish se používá pro ClickOnce Deployment, jednoduchou instalaci pro především intranetové aplikace což není váš případ. Další co mě napadá je fakt, zda-li berete binárky ze složky Debug nebo Release. Pro konečnou distribuci aplikace by se mělo použít vždy Release (neobsahuje informace pro ladění a je optimalizováno). A také je třeba si uvědomit, zda-li je výsledná binárka nezávislá (výchozí nastavení), vynuceně 32-bitová nebo vynuceně 64-bitová. 64-bitová by potom nefungovala na 32-bitovém systému, ale to by hlásilo něco jako "Toto není platná aplikace typu Win32". Pokud jste neměnil některé z pokročilých nastavení kompilátoru, tak toto by se nemělo vyskytnout.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Upraven název vlákna z:a jak pak na konec ...?

Na:Chyba při spouštění aplikace na jiném stroji, než kde byl vyvíjen

Příště prosím volte vhodnější nadpis, který vypoví alespoň o podstatě problému.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Omlouvám se za ten název, příště se polepším.

Nicméně, problém mě trochu zaskočil, protože myslím si že když spusta jiných projektů je "hotova" je potřeba to přece nějak a v dnešní době bych řekl "spíše lehce" spakovat do něčeho přenosného. Ještě jsem to včera zkusil prohnat přes volbu Publish ale s nasměrováním do folder. Vše proběhlo bez chybových hlášek, tak jsem to zazipoval a poslal kolegovi pro kterého to bylo určeno.

Zatím se neozval, takže nevím jestli to pomohlo nebo ne.

Možná tohle bude zajímat více lidí tak by bylo fajn kdyby z tohoto vlákna vznikla "nějaká mini kuchařka jak ukončit projekt ve Visual Studiu a předat jej do říše exe :-)" proto ten předchozí název. Pokud to bude fungovat určitě dám vědět.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ještě mě napadlo jestli nepoužíváte referenci na nějákou knihovnu kterou máte jenom u sebe a kterou kolegové nemají:)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V tomhle problém nebude, na to již bylo odpovězeno o několik příspěvků výše na dotaz "Používáte ve vaší aplikaci nějaké komponenty třetích stran?"

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Je dost možné, že systém aplikuje na program jiná bezpečnostní pravidla... Kupříkladu jsem vyvíjel jeden program, který byl uložen na síťovém disku a na každé klientské stanici, kde měl být spuštěn, jsem musel spustit vlastní dávkový soubor, který umožňoval považování programu systémem za důvěryhodný... Není možné, že by se jednalo o něco podobného?

...ještě doporučuji přidat do přenášeného programu do Application Events (tlačítko v kartě My Project) nějaký jednoduchý kód, který by těsně před spadnutím programu vygeneroval buď přes MsgBox nebo do textového souboru nějaký crash report...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pánové,

ještě jednou díky všem za výše uvedené informace. Počkám na reakci kolegy, zda to chodí nebo ne a uvidí se. To je dobrý nápad s tím crash reportem (aspoň by se z toho možná dalo poznat "kam až došel" :-)

Jestli ještě můžu k tomuto tématu poznámku, stejně by mě ale pořád zajímalo, co je vlastně oficiálním výstupem z Visual Studia. Beru to tak, že halda hodin se stráví při psaní a ladění aplikace, a co potom s tím když je to hotovo a řekněme člověk by chtěl to někomu poslat(neprogramátorovi) a říct "spusť setup.exe" a uvidíš,.. :-)

Nevím, možná je to naivní představa, ale když jsem bastlil s Microchipy PIC v assembleru, vždycky po kompilaci vypadl HEX formát, ten se nastřelil do integráče a bylo hotovo. Vím, PC není PIC ale přesto,...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Taky by mě zajímalo jaké knihovny ke spuštění aplikace jsou potřeba

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Výstup kompilátoru Visual Basicu .NET/C# je binární soubor ve formátu PE (Portable Executable), který obsahuje MSIL kód (Microsoft Intermediate Language) a metadata, který se v průběhu činnosti programu překládá do nativního kódu podle potřeby. Kromě .NET Frameworku jsou potřeba všechny knihovny, na které je v programu reference (ať už je to .NET, COM nebo Windows API).

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Taky mi to psalo tuhle chybu (Win XP, Framework nainstalovanej a nic). Nakonec jsem to vyřešil tak, že jsem do složky s programem přidal soubor "Microsoft.VisualBasic.PowerPacks.Vs.dll". A funguje to :-)

Vytvoření tohoto souboru ve složce s programem se dá nastavit v MyProject>References. Nastavit CopyLocal (u požadovaného souboru) na True

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

No však to je jasné, pokud používáte jiné knihovny než ty standardní z .NET Frameworku tak je musíte distribuovat společně s aplikací, pokud na cílovém počítači nejsou nainstalované v Global Assembly Cache.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback