Avatar
Teodor Weber
Člen
Avatar
Teodor Weber:

Č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. března 18:32
Avatar
jt.e
Člen
Avatar
jt.e:

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

Editováno 12. března 18:48
 
Nahoru Odpovědět  -2 12. března 18:45
Avatar
Teodor Weber
Člen
Avatar
Odpovídá na jt.e
Teodor Weber:

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. března 19:19
Avatar
Odpovídá na Teodor Weber
Petr Čech (czubehead):

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

Nahoru Odpovědět  -2 12. března 19:24
Why so serious? -Joker
Avatar
Shakul
Redaktor
Avatar
Shakul:

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  -2 12. března 19:32
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Teodor Weber
Jan Vargovský:

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. března 19:43
 
Nahoru Odpovědět  +4 12. března 19:43
Avatar
Petr Čech (czubehead):

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

Nahoru Odpovědět 12. března 19:43
Why so serious? -Joker
Avatar
Teodor Weber
Člen
Avatar
Teodor Weber:

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

 
Nahoru Odpovědět 12. března 19:44
Avatar
Teodor Weber
Člen
Avatar
Teodor Weber:

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. března 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.