Perché l’opzione “Imposta come avvio” è memorizzata nel suo file e non nel file sln?

Sembra che questa impostazione debba essere archiviata nel file della soluzione in modo che sia condivisa tra tutti gli utenti e parte del controllo del codice sorgente. Dal momento che non controlliamo il suo file, ogni utente deve impostare separatamente ciò che sembra strano.

Perché dovrebbe essere una preferenza non specifica dell’utente?

Se ho una soluzione con 10 file, e uno sviluppatore sta testando / utilizzando principalmente uno di questi strumenti, perché questo dovrebbe influire su ciò che avvio?

Penso che MS abbia fatto la scelta giusta su questo. Il progetto che voglio iniziare è lontano dal necessariamente il progetto che altri sviluppatori vogliono avviare.

È assolutamente necessario che ognuno possa definire da sé il proprio Progetto StartUp, come già detto da Jon . Ma per avere un predefinito predefinito sarebbe bello, e come posso dire, è ansible!

Se non si dispone di un file .suo nella directory della soluzione, Visual Studio preleva il primo progetto nel proprio file .sln come progetto di avvio predefinito.

  1. Chiudi il tuo Visual Studio e apri il file .sln nel tuo editor di testo preferito. A partire dalla riga 4, vedi tutti i tuoi progetti incapsulati nelle linee ProjectEndProject .

  2. Taglia e incolla il progetto di avvio predefinito desiderato nella posizione superiore.

  3. Elimina il tuo file .suo.

  4. Apri la tua soluzione in Visual Studio. Ta daa!

C’è un premio speciale se sai qualcosa che Jon non sa? 😉

Nella maggior parte dei casi, ha senso avere un valore predefinito su questo.

Sarebbe molto meglio ospitare un progetto di avvio predefinito e archiviarlo nel file .sln, ma che può essere sovrascritto da uno sviluppatore nel proprio file .suo. Se l’impostazione di avvio non viene trovata nel file .suo, verrà utilizzato il progetto di avvio predefinito in .sln.

In realtà, questo è stato suggerito su UserVoice di Visual Studio .

Ho scritto una piccola utility da riga di comando per Windows chiamata slnStartupProject per impostare automaticamente il progetto di avvio:

 slnStartupProject slnFilename projectName 

Io personalmente lo uso per impostare il progetto di avvio dopo aver generato la soluzione con cmake che imposta sempre un progetto ALL_BUILD fittizio come primo progetto nella soluzione.

La fonte è su GitHub. Forks e feedback sono i benvenuti.

Se si utilizza GIT, è ansible salvare il file SUO predefinito e contrassegnarlo come invariato utilizzando

 git update-index --assume-unchanged YourSolution.suo 

Funziona anche se vuoi avere più di un progetto nel tuo gruppo iniziale predefinito. L’unico svantaggio di cui sono a conoscenza è che questo comando deve essere eseguito da tutti coloro che non vogliono impegnare il file SUO.