Diskuze: Kompilace - exe
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 9 zpráv z 9.
//= 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.
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.OrdinalIgnoreCase;
Thread readThread = new Thread(Read);
// Vytvoreni objektu serioveho portu
_serialPort = new SerialPort();
// Definovani parametru prenosu
_serialPort.PortName = SetPortName(_serialPort.PortName);
_serialPort.BaudRate = SetPortBaudRate(_serialPort.BaudRate);
_serialPort.Parity = SetPortParity(_serialPort.Parity);
_serialPort.DataBits = SetPortDataBits(_serialPort.DataBits);
_serialPort.StopBits = SetPortStopBits(_serialPort.StopBits);
_serialPort.Handshake = SetPortHandshake(_serialPort.Handshake);
// cas kontroly spojeni
_serialPort.ReadTimeout = 10000;
_serialPort.WriteTimeout =10000;
_serialPort.Open();
_continue = true;
readThread.Start();
Console.Write("Uzivatel: ");
uzivatel = Console.ReadLine();
while (_continue)
{
text = Console.ReadLine();
if (stringComparer.Equals("konec", text))
{
_continue = false;
}
else
{
_serialPort.WriteLine(
String.Format("<{0}>: {1}", uzivatel, text));
}
}
readThread.Join();
_serialPort.Close();
}
public static void Read()
{
while (_continue)
{
try
{
string Text = _serialPort.ReadLine();
Text = System.IO.File.ReadAllText(@"C:\Users\kuba\Desktop\komunikator\cteni.txt");
}
catch (TimeoutException) { }
}
}
// Nastaveni portu
public static string SetPortName(string defaultPortName)
{
string portName;
Console.WriteLine("Vyber port:");
foreach (string s in SerialPort.GetPortNames())
{
Console.WriteLine(" {0}", s);
}
Console.Write("Vlozte COM port(Default: {0}): ", defaultPortName);
portName = Console.ReadLine();
if (portName == "" || !(portName.ToLower()).StartsWith("com"))
{
portName = defaultPortName;
}
return portName;
}
// Nastaveni modulacni rychlosti
public static int SetPortBaudRate(int defaultPortBaudRate)
{
string baudRate;
Console.Write("Nastavte modulacni rychlost(default:{0}): ",
defaultPortBaudRate);
baudRate = Console.ReadLine();
if (baudRate == "")
{
baudRate = defaultPortBaudRate.ToString();
}
return int.Parse(baudRate);
}
// Nastaveni parity prenosu
public static Parity SetPortParity(Parity defaultPortParity)
{
string parity;
Console.WriteLine("Nastavte paritu:");
foreach (string s in Enum.GetNames(typeof(Parity)))
{
Console.WriteLine(" {0}", s);
}
Console.Write("Vlozte hodnotu parity(Default: {0}):",
defaultPortParity.ToString(), true);
parity = Console.ReadLine();
if (parity == "")
{
parity = defaultPortParity.ToString();
}
return (Parity)Enum.Parse(typeof(Parity), parity, true);
}
// Nastaveni databitu
public static int SetPortDataBits(int defaultPortDataBits)
{
string dataBits;
Console.Write("Vlozte DataBit(Default: {0}): ", defaultPortDataBits);
dataBits = Console.ReadLine();
if (dataBits == "")
{
dataBits = defaultPortDataBits.ToString();
}
return int.Parse(dataBits.ToUpperInvariant());
}
// Nastaveni stopbitu prenosu
public static StopBits SetPortStopBits(StopBits defaultPortStopBits)
{
string stopBits;
Console.WriteLine("StopBit:");
foreach (string s in Enum.GetNames(typeof(StopBits)))
{
Console.WriteLine(" {0}", s);
}
Console.Write("Vyberte hodnotu StopBit(Default: {0}):",
defaultPortStopBits.ToString());
stopBits = Console.ReadLine();
if (stopBits == "")
{
stopBits = defaultPortStopBits.ToString();
}
return (StopBits)Enum.Parse(typeof(StopBits), stopBits, true);
}
public static Handshake SetPortHandshake(Handshake
defaultPortHandshake)
{
string handshake;
Console.WriteLine("Handshake nastaveni:");
foreach (string s in Enum.GetNames(typeof(Handshake)))
{
Console.WriteLine(" {0}", s);
}
Console.Write("Handshake hodnota(Default: {0}):",
defaultPortHandshake.ToString());
handshake = Console.ReadLine();
if (handshake == "")
{
handshake = defaultPortHandshake.ToString();
}
return (Handshake)Enum.Parse(typeof(Handshake), handshake, true);
}
}
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/#…
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\Microsoft.NET\Framework\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
Pokud chceš portable .exe, máš smůlu, C# to neumí- viz tady: http://www.itnetwork.cz/…6222592c07d2
Díky! Jde mi jen o spustitelný .exe soubor v konzoli.
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!
Zobrazeno 9 zpráv z 9.