Tämä on vuoden 2018 hakemistossa.

The referenced paragraph does not exist.

C#, Hello World ja komentorivi

Mikroluokissa: N-levyn liittäminen

N:-verkkolevylle on yliopiston verkossa tallennettu muun muassa kääntämiseen ja tekstieditorin käyttöön tarvittavia komentoja. Tarkista, että N:-verkkolevy on liitettynä (eli "mountattuna") esimerkiksi kirjoittamalla PowerShelliin (voit copy pastettaa tuosta alta)

dir n:

Jos tulee virheilmoitus dir : Cannot find drive. A drive with the name 'n' does not exist., klikkaa työpöydällä kuvake Yhdista-N. Jos kuvaketta ei ole, voit mountata levyn komentoriviltä:

net use N: \\vesan-kurssit.ad.jyu.fi\vesal

Omalla koneellasi voit kirjoittaa vastaavia komentoja (npp, csm, csk, jne) vaikka C:\bin-hakemistoon, ja lisätä tuon kansion niin sanottuun PATH-hakupolkuun niin komennot ovat käytettävissä mistä vain.

Eikö salasanan pitäisi olla oman yliopistotunnuksen salasana? Ilmoittaa että salasana ei ole oikea.

  • VL: riippu mihin? TIMiin pitäisi jos mennään Korppi-kirjaantumisella. Levyn mounttaamiseen kotoa myös, mutta usein pitää silloin käyttää VPN:ää.
16 Sep 18 (edited 16 Sep 18)

Em toimii mikroluokassa ja omassa koneessa mikäli se on yliopiston verkossa (jonka voi tehdä kotoakin VPN-yhteyden avulla). Mutta muualta kuin mikroluokan koneelta käytettynä net use pyytää käyttäjätunnusta ja salasanaa ja siinä on käyttäjätunnuksen perään kirjoitetaan myös domain tyyliin:

TUNNUS@ad.jyu.fi

Miksi salasanaa kysyttäessä CMD ei anna kirjoittaa tekstiä?

  • VL: antaa se, mutta se ei kaiuta mitään. Tuo on erittäin tyypillistä cmd-tyyppisissä ohjelmissa salasanoille. Oletta vaan liikaa tottuneet selainohjelmien tähtiin :-)
12 Sep 18 (edited 13 Sep 18)

Miksi PowerShell herjaa, ettei verkkonimeä löydy, vaikka tein kaiken varmasti oikein?

  • VL: mistä verkosta olet kokeillut. Varmastikko VPN:n yli?
14 Sep 18 (edited 14 Sep 18)

Jos esimerkiksi komento npp ei toimi, pitää paikka johon tuo on kirjoitettu (eli n:\bin) lisätä hakupolkuun:

cmd:
    path=n:\bin;%path%
    
PowerShell:
    $env:Path += ";n:\bin"
# hello

Hello World

Luo itsellesi hakemisto C:\MyTemp\OMATUNNUS\ohj1. Siirry tuonne hakemistoon komentorivillä. Tee ohjauksen tehtävät tänne hakemistoon.

Kirjoita jollakin editorilla tiedosto nimeltä HelloWorld.cs, vaikkapa Notepad++:lla (kirjoita komentoriviltä npp HelloWorld.cs):

public class HelloWorld
{
    public static void Main(string[] args)
    {
        System.Console.WriteLine("Hello World!");
    }
}

Aluksi meidän pitää löytää hakemisto, josta csc.exe löytyy. Vaihtoehtoja voi olla esimerkiksi:

c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Roslyn
c:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Roslyn
c:\Program Files (x86)\MSBuild\14.0\Bin\
c:\Windows\Microsoft.NET\Framework\v4.0.30319

Oikean hakemistonimen näkee kun kirjoittaa komentoriville aluksi

dir "c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Roslyn\csc.exe"

Jos csc.exen tiedot tulostuu, niin tuo hakemisto on oikea, muuten pitää kokeilla seuraavaa hakemistoa. Jos VisualStudio on asennettu, niin yleensä omassa koneessa tuo Community on oikea, mikroluokissa taas Enterprise tai myös c:\Program Files (x86)\MSBuild\14.0\Bin\ toimii (eli mikroluokissa voi mennä suoraan kirjoitetuilla ohjeilla).

Erityisesti kotikoneella korvaa jatkossa olevissa esimerkeissä (myös Lumiukko) aina tarvittaessa tuo hakemistonimi c:\Program Files (x86)\MSBuild\14.0\Bin\ sillä, mistä csc.exe löytyi. Älä kuitenkaan käytä hakemistonimeä, jossa on jono 64, vaikka csc.exe sieltä löytyisikin.

Lisää kääntäjä hakupolkuun kirjoittamalla seuraava rivi PowerShelliin ja paina Enter.

$env:Path += ";c:\Program Files (x86)\MSBuild\14.0\Bin\"

Jos käytät komentoriviä (cmd.exe) PowerShellin sijaan, kirjoita

PATH=c:\Program Files (x86)\MSBuild\14.0\Bin\;%path% 

Jos haluat muutoksen pysyväksi, lisää polku myös pysyvästi PATH-hakupolkuun (miten?) katsomalla nykyinen PATH muuttujan arvo ja lisää sen perään ; ja

c:\Program Files (x86)\MSBuild\14.0\Bin\

En ymmärrä tätä vaihetta, miten saan tallennettua polun pysyvästi PATH-hakupolkuun?

  • VL: Painoitko (miten?) linkkiä?
13 Sep 18 (edited 13 Sep 18)

Vaikka miten menee tähän asti ymmärtääkseni oikein aina on csc:n kohdalla vastaus: csc : The term ‘csc’ is not recognized as the name of a cmdlet, function, script fil e, or operable program. Check the spelling of the name, or if a path was included, v erify that the path is correct and try again."

16 Sep 18

Käännä sitten ohjelma kirjoittamalla komentoriville

csc HelloWorld.cs

HelloWorld.cs(5,18): error CS0117: ‘Console’ does not contain a definition for ‘Writeline’ Miksi en voi kääntää ohjelmaa? Antaa vain erroria

  • VL: oot kirjoittanut väärin :-)
15 Sep 18 (edited 15 Sep 18)

Aja ohjelma kirjoittamalla

.\HelloWorld.exe

Tosin ympäristömuuttujan pathext ansiosta riittää myös

.\HelloWorld

HUOM! Jos PowerShellissä joutuu antamaan hakemiston, jonka nimessä on välilyöntejä tai ohjelman nimessä on välilyöntejä, pitää nimi sulkea lainausmerkkeihin. Mutta sitten se on merkkijono eikä komennon nimi. Tällöin "komennon" nimen eteen pitää lisätä &-merkki (ks: PowerShell - Special Characters And Tokens).

Esimerkiksi:

& "\csc.exe" .\HelloWorld.cs

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.