Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: Obsah .exe souboru

C# .NET .NET (C# a Visual Basic) Obsah .exe souboru American English version English version

Aktivity (1)
Avatar
Fredep
Redaktor
Avatar
Fredep:22.11.2015 17:52

Ahoj!
Začal jsem se učit v C# a hned mě odradila jedna věc. Každá aplikace, ať už moje či stáhnutá z ITnetworku obsahuje absolutní cestu k nějakému souboru, viz obrázek. Dá se to nějak odstranit? Bude aplikace fungovat všude, když ten soubor nebude v konkrétním adresáři? Díky :)

(Používám Visual Studio 2015)

Odpovědět 22.11.2015 17:52
Týmová práce je důležitá proto, aby bylo možno obvinit z neúspěchu někoho jiného.
Avatar
patrik.valkovic
Šéfredaktor
Avatar
patrik.valkovic:22.11.2015 17:53

A builduješ to jako Release nebo jako Debug?

Nahoru Odpovědět 22.11.2015 17:53
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovídá na Fredep
Petr Čech (czubehead):22.11.2015 18:43

Tak to ale ani fungovat nemá, podívej se sem:
http://www.itnetwork.cz/…6222592c07d2

Nahoru Odpovědět 22.11.2015 18:43
Why so serious? -Joker
Avatar
Fredep
Redaktor
Avatar
Odpovídá na patrik.valkovic
Fredep:22.11.2015 18:56

Patrik: To je jedno, zkoušel jsem to u obou. :)

Petr Čech (czubehead): Aha, ale přesto, nedalo by se to udělat bez té instalace? Prostě přímo exe soubor, který se hned otevře a neobsahuje žádnou cestu. :-S Díval jsem se třeba na mé staré prográmky z Pascalu a ty tam nic takového nemají, jen čistě shluk písmenek a znaků. :D

Díky

Nahoru Odpovědět 22.11.2015 18:56
Týmová práce je důležitá proto, aby bylo možno obvinit z neúspěchu někoho jiného.
Avatar
Odpovídá na Fredep
Michal Žůrek (misaz):22.11.2015 19:07

ale on tu cestu nepotřebuje. Prostě žij s tím, že tam má něco co checkne jestli to existuje, pokud jo tak s tím možná něco dělá, pokud ne, nechá to být. Ten soubor pdb bude nějaká databáze, kterou něco používá, ale ona není potřebná. Když si to přebuilduješ, tak by v složce bin/Release mělo být exe, které tu cestu nebude obsahovat.

Nahoru Odpovědět 22.11.2015 19:07
Nesnáším {}, proto se jim vyhýbám.
Avatar
Odpovídá na Fredep
Petr Čech (czubehead):22.11.2015 19:07

Jenže není .exe jako .exe
Ty prográmky z Pascalu jsou zkompilované přímo do strojového kódu, kdežto C# se kompiluje do mezikódu, který je sám o sobě nezávislý na platformě a běží na robustním .NET frameworku, zbytek je v tom odkazu, co jsem ti poslal předtím.
Ve zkratce: nejde to, ale to přece nevadí, od toho právě máme instalátor, který naklikáš za chvilku.

To, že v těch Pascalových .exe jsou jen ty znaky tak to je právě ten strojový kód, hexa kód, programy neběží na procesoru jako text, ale přímo jako ten hexa kód. U C# vytváří ten hexa kód právě .NET virtuální stroj z něčeho, co by se dalo ještě rozebrat (dekompilovat) zpátky na původní kód, co jsi napsal ty (snad i s komentáři), jen by byl optimalizovaný. U pascalového by to šlo také, ale téměř určitě by z toho vylezlo něco jiného.

Nahoru Odpovědět 22.11.2015 19:07
Why so serious? -Joker
Avatar
Odpovídá na Fredep
Luboš Běhounek (Satik):22.11.2015 19:22

Máš tam debug verzi, ta odkazuje na místo, kde k tomu máš .pdb soubor s debugovacíma informacema.
Možná to tam bude i v releasu, ale možná to jde někde vypnout :)

Nahoru Odpovědět 22.11.2015 19:22
:)
Avatar
Milan Křepelka
Redaktor
Avatar
Milan Křepelka:23.11.2015 13:49

Tyhle informace tě asi nemusí oslovovat. Pokud ti to z nějakého důvodu vadí, tak bude stačit nastavit. Build ->Advanced->Debug Info->None

Nicméně připrav se na to, že se to ještě rád vrátíš. Takový CallStack při hledání chyby v cizím prostředí je věc k nezaplacený a ušetří ti spoustu hodin práce.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 23.11.2015 13:49
Avatar
Fredep
Redaktor
Avatar
Odpovídá na Milan Křepelka
Fredep:23.11.2015 15:49

Díky všem. Šlo mi jen o to, že když dám někde na internet mou C# aplikaci, která normálně všem funguje bez jakékoli instalace či dalších přiložených souborů, tak by obsahovala nějakou cestu k souboru na mém počítači, což mi samozřejmě přišlo divné ;)

Nahoru Odpovědět 23.11.2015 15:49
Týmová práce je důležitá proto, aby bylo možno obvinit z neúspěchu někoho jiného.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.