Login Login
MORE

WIDGETS

Widgets

Wanted articles
Who is online?
Article tools

VisualStudio:ToolTips

From Aino Wiki

Jump to: navigation, search

Raccolta di tips dall'ambiente IDE di Visual Studio.

Impostazioni

  • Numeri di linea. Andare su Tools > Options | Text Editor | All languages, mettere la spunta a 'Line numbers'.
  • Compilazione al volo. Andare su Tools > Options | Debugging | Edit and Continue, togliere la spunta al check 'Enable Edit and Continue', strano ma è così perché normalmente dovrebbe essere il contrario.

Compilazione

Azioni dopo la compilazione

Post build event.

Effettuare delle copie

Da stackoverflow usando il comando xcopy:

xcopy "$(ProjectDir)Views\Home\Index.cshtml" "$(SolutionDir)MEFMVCPOC\Views\Home"

Se si vuol copiare anche tutte le cartelle contenute:

xcopy /E /Y "$(ProjectDir)Views" "$(SolutionDir)MEFMVCPOC\Views"

Es. funzionante:

xcopy "$(SolutionDir)NeptuneDataCollector\bin\Debug\Plugins" "$(TargetDir)Plugins" /E /Y /I"

Seguono parametri usualmente usati:

/I - treat as a directory if copying multiple files
/Q - Do not display the files being copied.
/S - Copy subdirectories unless empty.
/E - Copy empty subdirectories.
/Y - Do not prompt for overwrite of existing files.
/R - Overwrite read only files.

Attenzione, se si clicca sul pulsante "Edit Post-build ..." si apre un editor che propone l'elenco di tutte le variabili $ col valore assunto per capire quale tra esse usare.

Eseguire un batch

Dopo la compilazione, ad es se in modalità Release, si potrà eseguire un file batch .bat nel seguente modo.
Dalle proprietà del progetto aggiungere alla sezione "builds events"

call "..\copyRelease.bat"

la cartella corrente si suppone quella pathSolution\bin\release se compiliamo in release, ecco perchè dopol'istruzione call inizio il percorso con '..'
ATTENZIONE si possono creare script più complessi basta usare le Macro disponibili dopo aver cliccato sul pulsante "Edit Post-build ..."

Azioni precedenti compilazione

pre-build event command line:

Cancellazione in determinata cartella

Sintassi del comando delete:

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names

Script da includere:

C:
cd C:\KT\Logs\KTNeptuneDataCollector
del /S /Q *.txt

Parametri per il comando delete:

/P	Prompts for confirmation before deleting each file.
/F	Force deleting of read-only files.
/S	Delete specified files from all subdirectories.
/Q	Quiet mode, do not ask if ok to delete on global wildcard
/A	Selects files to delete based on attributes
attributes	R Read-only files S System files H Hidden files A Files ready for archiving - Prefix meaning not

Riavvio IIS + pulizia cache

In una applicazione WEB dopo ogni compilazione è utile riavviare IIS (o meglio il pool di applicazioni [application pool]) e pulire la cache.
Ecco come fare:
Dalle proprietà del progetto aggiungere alla sezione "builds events" (nell'esempio l'app. pool si chiama "CruiseLocator"):

%windir%\system32\inetsrv\appcmd recycle apppool CruiseLocator
del /f /s /q $(TargetDir)
del /f /s /q $(ProjectDir)obj\

DLL x64 o x86

Come scoprirlo

Come determinare se una DLL è stata compilata a 32 bit o 64 bit?Da stackoverflow Usare l'utility DUMPBIN.EXE da Prompt comandi di Visual Studio ("Developper Command Prompt"), è situata qui (ad es.):

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin

Esempio d'uso:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin>dumpbin /headers D:\P
rogetti\Costa\NeptuneDataCollector\Sources\Shared\UA\UnifiedAutomation.UaBase.dl
l

Nelle prime righe dell'output c'è scritto se è x86 o x64 quindi se è a 32bit o 64bit

Debug

RemoteDebugging

(Valido per Visual Studio 2013) E' possibile far debug di un servizio posizionato su una macchina remota direttamente dalla propria macchina ecco come, (leggere la guida ufficiale da Sito Microsoft):

  • Sul server remoto scaricare ed installare questo tool da qui

WPF Debug

WPD Tool Debug.png

Configurazioni

Comportamenti indesiderati

The application is in break mode

"Your app has entered a break state, but no code is currently executing that is supported by the selected debug engine (e.g. only native runtime code is executing)."
Nel caso istruzioni impieghino più del necessario, c'è una sorta di timeOut per verificare loop infiniti:

VisualStudioDebug AppInBreak.png

Ecco come disabilitarlo: Debug > Options > General > Uncheck "Enable Just My Code"

Finestre

Per Threading

Per testare il multithreading c'è una finestra apposita per visualizzare tutti i Thread correntemente avviati con relative info si trova sotto:

DEBUG\Windows\Threads

Attivabile solo in esecuzione anche con lo shortcut: Ctrl+Alt+H

Editing

Metriche

Per cercare il numero di Linee di codice nell'intera solution è possibile effettuare una ricerca mediante una regular expression come segue:

// Visual Studio 2012 Version
^(?([^rn])s)*[^s+?/]+[^n]*$

// Versions prior to 2012
^:b*[^:b#/]+.*$
Linee di Codice FoxCC 3.png

DataBase

E' possibile porre sotto controllo del codice sorgente anche il DataBase e riuscire ad allineare il DB di produzione in base alle modifiche degli script. Occorre creare un progetto database nel quale ci son script per tabelle, storedProcedure, funzioni etc, quando si vuole allineare il DB di produzione è sufficiente farlo da VisualStudio.

Progetto di tipo Database

  1. Aggiungere un nuovo progetto alla solution, sulla colonna di sx scegliere altri linguaggi, quindi SQL Server.
  2. E' possibile aggiungerne come copia di un DB già esistente, seguire la procedura allo scopo. Per questo fare click col tasto dx sul progetto DB appena creato, selezionare "Import" e proseguire la procedura guidata.

Automaticamente si creeranno cartelle contenenti gli script di creazione di StoredProcedures, Funzioni, viste, tabelle etc. Il tutto può esser posto sotto controllo del codice sorgente mediante TFS, ogni aggiornamento agli script potrà esser portato su DB fisico e viceversa.

SchemaCompare via VisualStudio.png

Comparazioni

Consente di comparare quanto progettato, con scripts all'interno del progetto, con un DB reale (es. DB di produzione o altro) allo scopo di allinearlo.
La funzione è accessibile dal menu di VisualStudio:

SQL Server Compare vs progetto DB 01.png

Mappa e Links


Visual Studio


C#

Author