Come impedire a Visual Studio di “sempre” estrarre i file di soluzione?

Per apparentemente senza motivo, ogni volta che apro la mia soluzione, Visual Studio controlla il file sln.

Se lo paragono alla versione precedente non ci sono cambiamenti. Ma questo è davvero frustrante dal momento che tutti hanno verificato la soluzione.

Sto usando VS 2008 e TFS 2008, entrambi SP2.

Qualche idea su come posso fermare questo fatto? O è una funzionalità / bug del provider di controllo del codice sorgente TFS per VS?

Ciò accade quando quanto segue è nel file .sln:

GlobalSection(ExtensibilityGlobals) = postSolution MyGlobalProperty = AnyValue EndGlobalSection 

Ho scoperto che Enterprise Library ha aggiunto uno di questi. L’ho rimosso, archiviato la soluzione, chiuso, poi riaperto e non più il check-out automatico.

Dalla memoria, se si utilizza il menu Strumenti, Opzioni e si seleziona il pannello Controllo origine, Ambienti , ci dovrebbero essere alcune opzioni per configurare il modo in cui l’interfaccia IDE si collega al controllo della versione.

Penso che alcune di queste opzioni controllino il checkout sul comportamento aperto .

Solo nel caso in cui, come me, non si riuscisse a farlo funzionare e si scopre che uno o più progetti vengono controllati, ho trovato una soluzione più semplice. Prendi nota dei progetti che continua a verificare. Vai a File – Controllo del codice sorgente – Cambia controllo del codice sorgente e quindi separa i progetti in questione. Fare clic su OK, Salva tutto, quindi tornare a Modifica controllo origine e associare nuovamente il progetto alla soluzione. Spero che questo funzionerà per gli altri

Anche se non si previene il problema in primo luogo, l’uso liberale del comando “Undo Unchanged” di Team Foundation Power Tools (sorpresa a sorpresa) annulla la modifica in sospeso se non sono state apportate modifiche.

Consentire il check-out e quindi confrontare entrambi i file. Se VS ha aggiunto qualcosa del genere

  

si sta verificando un bug VS con una soluzione in VS2008 ma non è stato portato su VS2005

Controlla questo link per ulteriori dettagli:

Il file di soluzione di Visual Studio viene eseguito in modo invisibile tramite uno o più progetti della soluzione utilizzando la libreria di Microsoft Enterprise. Credo che questo dipenda dall’utilità di configurazione di Enterprise Library che consente la gestione della configurazione dei vari blocchi di applicazioni – http : //msdn.microsoft.com/en-us/library/ff649479.aspx

Vedere questo post di commenti Microsoft: http://connect.microsoft.com/VisualStudio/feedback/details/737184/globalsection-extensibilityglobals-postsolution-checks-out-sln-file-on-open

È una funzionalità / bug di uno dei sistemi di progetto caricati all’interno della soluzione. Prova a rimuovere vari tipi di progetti (C #, VB, C ++, sito web, web app, unit test, silverlight …) finché non scompare; questa è la tua risposta

Stai salvando i tuoi file prima di fare il confronto? È successo con me qualche tempo fa e continuo a dire che non ci sono cambiamenti tra i file, ma dopo un po ‘mi rendo conto che non stavo salvando i file prima e stava confrontando con la versione in disco, non con la versione in memoria.

Ogni volta che apri una soluzione in Visual Studio, esegue alcune operazioni che potrebbero causare la modifica dei file .sln o di progetto e quindi ti chiederà di estrarre il file. Succede quando ci sono cambiamenti nella struttura delle cartelle nella macchina degli sviluppatori, o quando non hanno le stesse versioni di tutti i file. Forse qualcuno ha aggiunto un progetto in qualche cartella e un altro sviluppatore ha lo stesso progetto in un altro posto. Un altro caso che vedo accadere è che quando abbiamo una soluzione con alcuni progetti c ++, per qualche ragione, uno di questi progetti c ++ aveva un file .res con percorsi assoluti. Una volta che questo file è stato generato automaticamente da VS, ha continuato a cambiare dalla macchina per sviluppatori alla macchina per sviluppatori.

Ti suggerisco di aprire il tuo file .sln e cercare alcuni percorsi assoluti o percorsi relativi che potrebbero non esistere in alcune macchine sviluppatore, a seconda di quali file ottengono dal tuo Source Control.