Diskuze: Spuštění aplikace vytvořené ve VS2012 Express na jiném PC
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 14 zpráv z 14.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Problém je v tom, že ten cílový framework musí na počítači být nainstalovaný.
Pokud je, aplikace se normálně spustí, pokud ne, zahlasí chybu.
Nastav tam 3.5 a půjde to na většině počítačů kromě Windows XP z roku 2001.
Opravdu nevím co dělám špatně, ale mám nastavené Cílové rozhraní
Framework na 3.5, na počítači je nainstalován 4.0 a pořád se aplikace
nespustí a hlásí chybu. (Nefungovalo to, ani když jsem nastavil stejný
Framework jako v počítači ve kterém chci aplikaci spouštět)
v App.Config je správně nastavený Framework na nižší...
Je potřeba ještě někde v aplikaci něco přepsat ručně?
Zoufale volám o pomoc
Při ladění žádnou chybu nehlásí a ať nastavím jakýkoli cílový
Framework, tak u mne to jede a na tom druhém počítači ne
Akú chybu hlási ten druhý pc?
Vytvor v tom VS2012 nový projekt, konzole aplikáciu a main uprav takto:
static void Main(string[] args)
{
Console.WriteLine("Hexadecimálne číslo (rozsah 0 až FFFFFFFF)\nprevediem na desiatkové");
Console.Write("\nZadaj: ");
string hex = ""; // vstupná premenná
string hexar = "0123456789abcdef"; // pomocná premenná pre funkciu Contains()
int[] desiatky = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
// ošetrenie vstupu
bool opakovat = true;
while (opakovat)
{
hex = Console.ReadLine();
hex = hex.ToLower();
foreach (char c in hex)
{
if (!hexar.Contains(c))
{
Console.Write("\nŠpatný vstup, znova: ");
opakovat = true;
break;
}
else
opakovat = false;
}
}
// koniec ošetrenia vstupu
double nas = hex.Length - 1;
double pom, dec = 0;
foreach (char c in hex)
{
int cis = 0;
int index = hexar.IndexOf(c);
if (index >= 0) // znak nájdený
cis = desiatky[index];
pom = cis * Math.Pow(16, nas);
nas--;
dec += pom;
}
Console.Write("\nHex číslo {0} prevedené na dec je {1}.", hex, (int)dec);
Console.ReadKey();
}
Skompiluj to a potom vyskúšaj na tom druhom PC.
tohle mi spustí bez problémů...
já mám vytvořenou aplikaci WinForm a používám i databázi.
Nemůže být problém v tom?
Hlavně co se týče databáze? Ale podotýkám, že na některých
počítačích to jede, na některých ne
Jen pro upřesnění, jsem samouk, vše hledám v knihách a na
internetu.
Určitě mi chybí celistvé informace a s tímto jsem se setkal náhodou,
protože jsem potřeboval spustit aplikaci na jiném než na svém
počítači.
Shodou okolností u manželky mi vše jelo krásně a tak jsem vůbec doteď
neřešil, že by mohla podobná situace nastat...
nejsem si moc jist, ale pro databáze musíš mít na cílovém počítači ještě něco nainstalované. Nicméně nevím co
Právě abych se vyhnul nutnosti mít nainstalovaný SQL server, tak jsem chtěl využít možnosti: Zdroj dat: Databázový soubor Microsoft SQL server.
prostě k aplikaci mám přidaný soubor *.mdf
Využívám v aplikaci i LINQ to SQL a hodně to zjednoduší práci kvůli
otrockému vypisování jednotlivých SQL příkazů. Začínám mít pocit, že
pro tuhle relativně jednoduchou aplikaci zkusím využít jako zdroj dat
databázi MS Accessu.
Pro nástin aplikace:
Mám textové soubory(libovolný počet souborů, ale patřičné údaje jsou
pořád na konkrétních místech v souboru)ve kterých jsou uložená data. Já
z těchto souborů načtu informace a ukládám si je do databáze a následně
s nimi pracuji.
Tohle tuším většinou .net exáč dělá, když mu chybí nějaká
knihovna.
Pokud ti ten kód od libcosenior na těch PC jel, tak to nebude .NET, ale
nějaká jiná knihovna, nevím, jaké všechny tam používáš.
Zkusil bych ještě do program.cs obalit main funkci try..catch a případnou chybu vypsat třeba do messageboxu, abys měl jistotu, že to není nějaká runtime chyba.
Satiku i všem ostatním díky za rady.
Zkouším vše možné a nemožné
když jsem zkusil obalit main funkci a ponechal cílovou platformu jako Framework 4.5 tak to zahlásilo, že je potřeba doinstalovat právě Framework 4.5. Ale když jsem změnil cílovou platformu na 4.0 nebo 3.5 tak tohle výjimku nezachytí a jen zahlásí jako dřív, že program nefunguje správně a je ho potřeba ukončit...
Zobrazeno 14 zpráv z 14.