2011-04-21 12 views
26

Trabajando con Visual Studio 2010 aquí, pero el comportamiento ha sido el mismo desde el principio de los tiempos: ¿hay alguna manera de obligar al IDE a guardar automáticamente el archivo del proyecto después de hacer un "Incluir en proyecto" en archivos nuevos? La gente nueva en VS no adquiere rápidamente el hábito de Ctrl + Shift + S después de cada una de estas operaciones, lo que lleva a múltiples confirmaciones de reposiciones cuando descubrimos que faltan activos en nuestras aplicaciones de paquetes.¿Cómo guardar automáticamente el archivo del proyecto después de incluir un nuevo archivo en Visual Studio?

+0

¿AnkhSVN hace lo que necesita? – GregC

+0

No he mirado a Ankh en mucho, mucho tiempo, pero lo verificaremos –

+0

+1 por el esfuerzo de salir de la carrera de ratas que es el ciclo test-code-refactor-commit. – GregC

Respuesta

0

Creo que esto fue "por diseño", por lo que puede prototipo algo sin guardar en el disco. Estoy de acuerdo en que debería ser una opción.

De hecho, si está trabajando en un proyecto respaldado por un repositorio, debería guardarlo de manera predeterminada. Si no hay un repositorio asociado, debe mantenerse en la memoria, por defecto.

+1

Al utilizar TFS como control de origen, automáticamente "agrega al control de origen", aunque todavía no guarda los archivos de proyecto (o solución). No sé si otro control de fuente integrado es el mismo. –

6

Puede escribir un complemento para lograr esto. Todavía estoy trabajando en los errores. Extender VS es doloroso.

algunos extractos:

public class Connect : IDTExtensibility2 
{ 
    private AddIn _addInInstance; 
    private DTE2 _applicationObject; 
    private Events2 events; 

    public void OnStartupComplete(ref Array custom) 
    { 
     events = _applicationObject.Events as Events2; 
     events.ProjectItemsEvents.ItemAdded += SolutionEvent; 
     events.ProjectItemsEvents.ItemRemoved += SolutionEvent; 
     events.ProjectItemsEvents.ItemRenamed += 
      new _dispProjectItemsEvents_ItemRenamedEventHandler(
            ProjectItemsEvents_ItemRenamed); 
    } 

    void ProjectItemsEvents_ItemRenamed(ProjectItem projectItem, 
             string OldName) 
    { 
     Save(projectItem); 
    } 

    private void SolutionEvent(ProjectItem projectItem) 
    { 
     Save(projectItem); 
    } 

    void Save(ProjectItem projectItem) 
    { 
     if (!projectItem.ContainingProject.Saved) 
      projectItem.ContainingProject.Save(); 
    } 
} 
+0

Parece ser exactamente lo que necesito (también tengo problemas con los cambios de proyecto que faltan regularmente en mis confirmaciones de Git). ¿Alguna posibilidad de que hayas publicado esto en algún lado? –

+0

No. Tuve problemas extraños tratando de distribuirlo. Simplemente no funcionaría en la PC de nadie más. Obviamente estaba haciendo algo estúpido pero nunca descubrí qué. – Sam

+0

¿Cómo podría implementar esto como un complemento? ¿Funcionaría en VS 11? –

15

solía correr en esto todo el tiempo y fue muy molesto. La solución que uso es volver a mapear CTRL+S a File.SaveAll porque ya estoy usando el control de fuente. Sin embargo, esto no ayuda a las nuevas instalaciones de VS que no tuvieron esta configuración.

Cuestiones relacionadas