Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Teodor Weber
Člen
Avatar
Teodor Weber:12.3.2016 18:32

Čauves! :)
Potřeboval bych poradit s kompilací zdrojáku ve windows. Mám zdroják programu napsaného v C# a potřeboval bych z něj udělat exe soubor.
Popíše mi tu někdo postup??

 
Odpovědět
12.3.2016 18:32
Avatar
jt.e
Člen
Avatar
jt.e:12.3.2016 18:45

F7
Pokud ho sem nedáš, tak nic jiného neporadím..

Editováno 12.3.2016 18:48
 
Nahoru Odpovědět
12.3.2016 18:45
Avatar
Teodor Weber
Člen
Avatar
Odpovídá na jt.e
Teodor Weber:12.3.2016 19:19

using System;
using System.IO.Ports;
using System.Threading;

public class komunikace
{
static bool _continue;
static SerialPort _serialPort;

public static void Main()
{

string uzivatel;
string text;
StringComparer stringComparer = StringComparer­.OrdinalIgnore­Case;
Thread readThread = new Thread(Read);

// Vytvoreni objektu serioveho portu
_serialPort = new SerialPort();

// Definovani parametru prenosu
_serialPort.Por­tName = SetPortName(_se­rialPort.PortNa­me);
_serialPort.Bau­dRate = SetPortBaudRa­te(_serialPor­t.BaudRate);
_serialPort.Parity = SetPortParity(_se­rialPort.Pari­ty);
_serialPort.Da­taBits = SetPortDataBit­s(_serialPort­.DataBits);
_serialPort.Stop­Bits = SetPortStopBit­s(_serialPort­.StopBits);
_serialPort.Han­dshake = SetPortHandsha­ke(_serialPor­t.Handshake);

// cas kontroly spojeni
_serialPort.Re­adTimeout = 10000;
_serialPort.Wri­teTimeout =10000;

_serialPort.Open();
_continue = true;
readThread.Start();

Console.Write("U­zivatel: ");

uzivatel = Console.ReadLine();

while (_continue)
{
text = Console.ReadLine();

if (stringComparer­.Equals("konec", text))
{
_continue = false;
}
else
{
_serialPort.Wri­teLine(
String.Format("<{0}>: {1}", uzivatel, text));
}
}

readThread.Join();
_serialPort.Clo­se();
}

public static void Read()
{
while (_continue)
{
try
{

string Text = _serialPort.Re­adLine();

Text = System.IO.File­.ReadAllText(@"C:\U­sers\kuba\Des­ktop\komunika­tor\cteni.txt");

}
catch (TimeoutException) { }
}
}

// Nastaveni portu
public static string SetPortName(string defaultPortName)
{
string portName;

Console.Write­Line("Vyber port:");
foreach (string s in SerialPort.Get­PortNames())
{
Console.WriteLine(" {0}", s);
}

Console.Write("Vloz­te COM port(Default: {0}): ", defaultPortName);
portName = Console.ReadLine();

if (portName == "" || !(portName.To­Lower()).Star­tsWith("com"))
{
portName = defaultPortName;
}
return portName;
}
// Nastaveni modulacni rychlosti
public static int SetPortBaudRate(int defaultPortBau­dRate)
{
string baudRate;

Console.Write("Nas­tavte modulacni rychlost(defau­lt:{0}): ", defaultPortBau­dRate);
baudRate = Console.ReadLine();

if (baudRate == "")
{
baudRate = defaultPortBau­dRate.ToStrin­g();
}

return int.Parse(bau­dRate);
}

// Nastaveni parity prenosu
public static Parity SetPortParity(Pa­rity defaultPortParity)
{
string parity;

Console.Write­Line("Nastavte paritu:");
foreach (string s in Enum.GetNames(ty­peof(Parity)))
{
Console.WriteLine(" {0}", s);
}

Console.Write("Vloz­te hodnotu parity(Default: {0}):", defaultPortPa­rity.ToString(), true);
parity = Console.ReadLine();

if (parity == "")
{
parity = defaultPortPa­rity.ToString();
}

return (Parity)Enum.Par­se(typeof(Pari­ty), parity, true);
}
// Nastaveni databitu
public static int SetPortDataBits(int defaultPortDa­taBits)
{
string dataBits;

Console.Write("Vloz­te DataBit(Default: {0}): ", defaultPortDa­taBits);
dataBits = Console.ReadLine();

if (dataBits == "")
{
dataBits = defaultPortDa­taBits.ToStrin­g();
}

return int.Parse(data­Bits.ToUpperIn­variant());
}

// Nastaveni stopbitu prenosu
public static StopBits SetPortStopBit­s(StopBits defaultPortStop­Bits)
{
string stopBits;

Console.Write­Line("StopBit:");
foreach (string s in Enum.GetNames(ty­peof(StopBits)))
{
Console.WriteLine(" {0}", s);
}

Console.Write("Vy­berte hodnotu StopBit(Default: {0}):", defaultPortStop­Bits.ToString());
stopBits = Console.ReadLine();

if (stopBits == "")
{
stopBits = defaultPortStop­Bits.ToString();
}

return (StopBits)Enum­.Parse(typeof(Stop­Bits), stopBits, true);
}

public static Handshake SetPortHandsha­ke(Handshake defaultPortHan­dshake)
{
string handshake;

Console.Write­Line("Handsha­ke nastaveni:");
foreach (string s in Enum.GetNames(ty­peof(Handshake)))
{
Console.WriteLine(" {0}", s);
}

Console.Write("Han­dshake hodnota(Default: {0}):", defaultPortHan­dshake.ToStrin­g());
handshake = Console.ReadLine();

if (handshake == "")
{
handshake = defaultPortHan­dshake.ToStrin­g();
}

return (Handshake)Enum­.Parse(typeof(Han­dshake), handshake, true);
}

}

 
Nahoru Odpovědět
12.3.2016 19:19
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na Teodor Weber
Petr Čech:12.3.2016 19:24

Stáhni si normálně VisualStudio, ne?

Nahoru Odpovědět
12.3.2016 19:24
the cake is a lie
Avatar
Lukáš Fusek
Tvůrce
Avatar
Lukáš Fusek:12.3.2016 19:32

Aby si to mohl zkompilovat, tak musíš stáhnout VisualStudio, založit novou konzolovou aplikaci a vložit tento zdrojový kód.
Kdyby se ti to náhodou nechtělo dělat, tak zde máš zkompilovaný .exe soubor. :-)
https://mega.nz/#…

 
Nahoru Odpovědět
12.3.2016 19:32
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Teodor Weber
Jan Vargovský:12.3.2016 19:43

Na to, aby sis zkompiloval c# kód nepotřebuješ VS...

najdi si csc.exe (buď skrz developer consoli napiš "where csc") nebo ho najdeš tam, kde máš nainstalovaný .NET (obvykle Windows\Micro­soft.NET\Frame­work\VERZE\csc­.exe)

a pak tam jen přihoď ty soubory se zdrojákem, takže celá kompilace může vypadat takhle:

csc.exe /Out:app.exe main.cs
Editováno 12.3.2016 19:43
 
Nahoru Odpovědět
12.3.2016 19:43
Avatar
Petr Čech
Tvůrce
Avatar
Petr Čech:12.3.2016 19:43

Pokud chceš portable .exe, máš smůlu, C# to neumí- viz tady: http://www.itnetwork.cz/…6222592c07d2

Nahoru Odpovědět
12.3.2016 19:43
the cake is a lie
Avatar
Teodor Weber
Člen
Avatar
Teodor Weber:12.3.2016 19:44

Díky! Jde mi jen o spustitelný .exe soubor v konzoli.

 
Nahoru Odpovědět
12.3.2016 19:44
Avatar
Teodor Weber
Člen
Avatar
Teodor Weber:13.3.2016 10:43

Chlapi, potřeboval bych trochu pomoct s tím kódem -> potřebuji, aby když to propojim se dvěma PC tak jedno PC přijímalo řetězec načtený ze souboru a druhý PC, aby ten řetězec odesílalo. Koukám do toho dva dny a nemužu přijít na to, proč to nefunguje, když se vytvoří spojení. Mrkne mi na to někdo? Díky!

 
Nahoru Odpovědět
13.3.2016 10:43
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.