2009-04-04 14 views
7

Estoy tratando de crear una configuración donde pueda generar una solución de estudio visual + archivo de proyecto, que haga referencia a archivos y carpetas "afuera" de la carpeta donde. sln y .csproj's están almacenados.Make VisualStudio C# tiene archivos/carpetas fuera del directorio del proyecto

y (la captura :)), necesito nuevos archivos que se crean con usted RightClick una carpeta y dicen "nuevo archivo de código" que se genera en la carpeta que se rightclicked, que vive fuera de la .sln carpeta.

¿Realmente no se puede hacer?

PS Sidenote: la razón para querer hacer esto es que los archivos .cs son realmente utilizados por un programa diferente, junto con muchos otros archivos, y no quiero el .sln, .csproj,. ReSharper, .suo, etc. archivos para desordenar mi directorio.

+0

¿Es este programa 'diferente' escrito por usted? Si es así, una mejor solución sería dejar los archivos .cs dentro del directorio del proyecto y volver a escribir el programa para filtrar los archivos que no son .cs. Un poco más de información acerca de este otro programa puede ayudar a alguien a encontrar una solución mejor. En mi humilde opinión, mantener archivos fuera del directorio del proyecto es solo crear pesadillas de mantenimiento, – belugabob

Respuesta

-1

Gracias a todos por su contribución. Parece que lo que quiero exactamente no es posible en este momento. Gorrón.

7
+1

Desafortunadamente, eso requeriría que el usuario primero haga el archivo fuera del visual estudio, y luego AddAsLink it.Espero que haya una manera de disputar las cosas para que el usuario pueda hacer Add-> NewItem – Lucas

+0

, esto requerirá un complemento VS (que es bastante feo) –

0

Tal fsutil hardlink create?

No sería difícil tener una secuencia de comandos powershell que atraviesa el directorio de proyectos de VS y crea enlaces duros para cada uno de los archivos .cs encontrados en su "otro" directorio. podría tenerlo configurado para ejecutarse cada hora, todas las noches, a pedido, whataver.

+1

Right. desafortunadamente eso no soluciona el problema de no poder hacer "Agregar nuevo elemento" desde Visual Studio. – Lucas

0

fsutil hardlink crear == http://dotnet-snippets.de/dns/hardlink-erstellen-SID355.aspx

[DllImport("kernel32.dll", EntryPoint="CreateHardLinkA", CharSet=CharSet.Ansi, SetLastError=true, ExactSpelling=true)] 
private static extern long CreateHardLink(string lpFileName, string lpExistingFileName, IntPtr lpSecurityAttributes); 

public void CreateHardLink(String sourcePath, string destPath) { 
    CreateHardLink(destPath, sourcePath, IntPtr.Zero); 
} 
3

Para cualquiera que esté interesado, es posible tener una carpeta "ligado" en el explorador de soluciones en lugar de solo los archivos vinculados que aparecen en la raíz de la solución. Incluya lo siguiente en los archivos csproj/vbproj.

<ItemGroup> 
    <None Include="..\MyFolder\*.*"> 
     <Link>MyFolder\A\</Link> 
    </None> 
    </ItemGroup> 

Esto incluirá todos los archivos de la 'MiCarpeta' directorio de un nivel por encima del proyecto. La 'A' puede llamarse cualquier cosa, pero debe estar allí para que la carpeta aparezca en el explorador de la solución. Lamentablemente, al utilizar esta técnica no puede agregar nuevos archivos del IDE, ya que se agregarán a una carpeta del mismo nombre en el directorio del proyecto en lugar de al directorio vinculado.

0

La solución que encontré fue instalar la extensión de Asistencia visual, que permite agregar un archivo relativo al directorio o su archivo actualmente abierto.

Vea mi previous post para una explicación más detallada.

Cuestiones relacionadas