Diskuze: Obsah .exe souboru

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

Avatar
Fredep
Redaktor
Avatar
Fredep:

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:

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
Nahoru Odpovědět 22.11.2015 18:43
Why so serious? -Joker
Avatar
Fredep
Redaktor
Avatar
Odpovídá na patrik.valkovic
Fredep:

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):

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):

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):

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:

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:

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.