2012-03-19 16 views
6

Abbiamo commesso l'errore di consentire ai file .csproj.user di essere controllati in TFS in modo da poter impostare i valori predefiniti di "Avvia programma esterno". Questo ha funzionato male, soprattutto durante la ramificazione.Problemi con .csproj.user se controllato in TFS

Ora stiamo cercando di annullare questo.

Se elimino il file .csproj.user per un progetto e quindi provare a impostare nuove proprietà progetto di debug, ottengo:

TF14050: Impossibile modificare voce $/xxx.csproj.user perché ha già un cambiamento in sospeso che non è compatibile.

Se controllo l'eliminazione e apporto le modifiche, TFS tenta quindi di aggiungere nuovamente il mio file .csproj.user.

Come possiamo risolvere questo problema per i progetti esistenti nel controllo del codice sorgente?

Aggiornamento:

Penso che la loro distruzione è l'opzione migliore; abbiamo finito per eliminarli con gli strumenti di alimentazione TFS, però. Il trucco era il primo Remove the Source Control File Type che avevamo per * .user, anche se era già disabilitato. Ora TFS sembra ignorare completamente questi file.

risposta

2

Assicurarsi che nessuno abbia estratto il file, quindi eliminare il file: il check-in come eliminazione e non una modifica.

Io uso Team Foundation Power Tools e farlo dal menu contestuale di Windows Shell

1

Dopo aver eliminato un file in TFS, non è ancora andato. Devi effettuare il Check-in della tua cancellazione. Solo allora il file sarà scomparso.

È consigliabile quindi pulire anche lo spazio di lavoro per assicurarsi che i file utente non indugino come file di sola lettura.

4

Volevo anche archiviare i file .user per fare ciò che voleva il richiedente, per fornire i valori di default per le opzioni di debug/run. Si scopre che il file .user è solo un altro file XML di MSBuild Project, e puoi semplicemente "unire" il gruppo di proprietà lì dentro al tuo progetto. Non c'è bisogno di file .user.

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'"> 
    <StartAction>Program</StartAction> 
    <StartProgram>$(VS100COMNTOOLS)..\IDE\devenv.exe</StartProgram> 
    <StartArguments>/rootsuffix Exp</StartArguments> 
    </PropertyGroup> 
0

Io uso TFS Git e sono stato in grado di eliminare il file indesiderati sul server tramite il sito del progetto TFS. Quindi ho sincronizzato il progetto locale con il server.

Quando si apre il progetto per la sincronizzazione, VS potrebbe lamentarsi che non è possibile eseguire la sincronizzazione finché non si commettono modifiche al file indesiderato. Questo è esattamente ciò che non volevo fare, volevo che il file andasse via.

Tuttavia, nella schermata di modifica, ho fatto clic con il pulsante destro del mouse sul file e ho detto "annulla le modifiche" e l'ho fatto andare via.

Dopo aver annullato le modifiche, sono riuscito a eseguire la sincronizzazione e il server ha rimosso il file indesiderato dal mio repository locale.