NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Samo
Člen
Avatar
Samo:9.4.2017 14:12

Vie mi niekto poradit ako sa robi nejaka default cesta k suborom? Robim wpf aplikaciu, v ktorej nacitavam niektore subory. Zatial mam cesty k suborom nastavene natvrdo. Keby to instalujem na inom PC ako na mojom tak tie subory na zaklade tych ciest nenajde. Potreboval by som nieco take, ze po nainstalovani na PC (instalacia bude obsahovat aj tie subory) si program bude vediet nastavit cesty na zaklade toho kam som aplikaciu nainstaloval a z toho bude vediet vytvorit cestu k suborom. Dufam ze som to zrozumitelne napisal :D pripadne by mi pomohol aj dobry tutorial, lebo hladal som, ale nic som nenasiel. neviem presne co hladam.

 
Odpovědět
9.4.2017 14:12
Avatar
HONZ4
Člen
Avatar
Odpovídá na Samo
HONZ4:9.4.2017 14:34
C:\Users\uzivatel\AppData\Roaming:
string pth = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

složka aplikace:
string pth = AppDomain.CurrentDomain.BaseDirectory;
 
Nahoru Odpovědět
9.4.2017 14:34
Avatar
Samo
Člen
Avatar
Odpovídá na HONZ4
Samo:9.4.2017 20:42

Textovy subor som vlozil so do foldra, kde je aplikacia a ked v programe dam toto AppDomain.Curren­tDomain.BaseDi­rectory, tak sa v tom priecinku nachadza ten subor aj si ho v aplikacii precitam, ale ked dam publish a exportnem to ako click once aplikaciu, tak mi vyskoci chyba ze subor sa nenasiel. V com je problem ?

 
Nahoru Odpovědět
9.4.2017 20:42
Avatar
HONZ4
Člen
Avatar
HONZ4:9.4.2017 22:12

Já nevím, normálně by to mělo fungovat i takto:

OtvorSubor("text_document.txt");
//nebo
OtvorSubor(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "text_document.txt"));

já publish nepoužívám, instalátory dělám přes NSIS

Editováno 9.4.2017 22:14
 
Nahoru Odpovědět
9.4.2017 22:12
Avatar
Odpovídá na Samo
Michal Štěpánek:10.4.2017 7:17

A máš "ten" soubor ve vlastnostech nastavený, aby se kompiloval spolu s aplikací do release? Publish se dělá z adresáře bin/release a tam ho pravděpodobně nemáš (asi ho máš jen v bin/debug), proto ho nenajde... Osobně taky publish nepoužívám, u nás ve firmě šířím program prostým kopírováním adresáře, jinak na instalátor používám inno script studio...

Nahoru Odpovědět
10.4.2017 7:17
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Samo
Člen
Avatar
Odpovídá na Michal Štěpánek
Samo:10.4.2017 11:03

No uz som to vyriesil, ale aj tak sa mi to nevidi. Najskor v properties aplikacie dam Resorces, tam si najdem ten subor, ktory som dal do \bin\Release potom sa mi ten subor objavi v solution a nan kliknem pravym, dam properties a dam Build action/content, potom v publish v moznosti Application Files pozriem ci sa tam nachadza ten subor. Je tam napisana k nemu cesta \bin\Release\na­zov.txt. Ked mam v aplikacii prikaz AppDomain.Curren­tDomain.BaseDi­rectory; , tak sa dostanem iba do priecinku kde sa nachadza bin. Musim teda k tej ceste prilepit este toto \bin\Release\na­zov.txt, aby bol schopny najst ten subor. Fakt sa to takto riesi?

 
Nahoru Odpovědět
10.4.2017 11:03
Avatar
Odpovídá na Samo
Michal Štěpánek:10.4.2017 12:14

Jak jsem psal, k vytvoření instalátoru používám Inno Script Studio, tam si pohodlně naklikám, které soubory chci přibalit do instalace a je to. Osobně bych ale pomocné soubory aplikace (třeba ty *.txt) rozhodně nedával do adresáře aplikace, protože ta je většinou v ProgramFiles, kde jsou implicitně zakázány úpravy a mohl bys mít pak problémy s programovou úpravou toho souboru. Na to jsou právě adresáře typu "ProgramData", kam se podobné soubory umisťují...

Nahoru Odpovědět
10.4.2017 12:14
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Samo
Člen
Avatar
Odpovídá na Michal Štěpánek
Samo:10.4.2017 16:44

Skusil som to nainstalovat cez Inno a funguje to. Ale neviem kde sa tam da nastavit, ze mam viac ako jeden .exe subor. Chcel by som aby sa mi aplikacia nainstalovala ako office, lebo mam viacej .exe aplikacii, ale chcem aby mali jednu instalacku, lebo pouzivaju tu istu databazu.

 
Nahoru Odpovědět
10.4.2017 16:44
Avatar
Odpovídá na Samo
Michal Štěpánek:10.4.2017 17:55

Na InnoSetup je tu někde i tutoriál...

Nahoru Odpovědět
10.4.2017 17:55
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na Samo
Michal Štěpánek:10.4.2017 17:59

Vzhledem k tomu, že .NET appky se nemusí instalovat, můžeš si vybrat při vytváření toho instalátoru všechny soubory, které chceš, aby ve výsledném adresáři byly a pak je můžeš spouštět dle libosti...

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
10.4.2017 17:59
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Samo
Člen
Avatar
Samo:10.4.2017 18:01

Diky funguje to :)

 
Nahoru Odpovědět
10.4.2017 18:01
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 11 zpráv z 11.