In Visual Studio (2008) esiste un modo per avere un file dipendente personalizzato su un altro file personalizzato?

Invece di un codice * .cs dietro o accanto mi piacerebbe avere un file * .js. Sto sviluppando un’applicazione MVC che non ha bisogno di un codice a fianco perché ho controller, ma in certi casi sarebbe bello avere un codice JavaScript accanto o un modo per associare il file alla pagina in cui viene utilizzato. Suppongo che potrei semplicemente nominarli allo stesso modo, ma voglio mostrare l’associazione, se ansible, quindi non c’è dubbio su cosa sia il file.

In genere, di cosa sto parlando è in Visual Studio ora sotto il tuo file Global.asax avrai un segno più a sinistra:

+ Global.asax 

Una volta che lo espandi, otterrai

 - Global.asax Global.asax.cs 

Mi piacerebbe che succedesse la stessa cosa:

 + Home.spark - Home.spark Home.spark.js 

aggiornato:

Il mio file csproj esistente ha un percorso verso il file attuale, non è sicuro che lo stia rovinando. Al momento ho:

   Views\User\Profile.spark      

e mostra semplicemente i file l’uno accanto all’altro.

Assolutamente – ma dovrai modificare il file del progetto a mano. Trova la voce del tuo file “figlio” e modificala come elemento non autochiudente e aggiungi un elemento figlio per dire da cosa dipende. Ecco un esempio per un file .cs in fase di compilazione:

  MoreEnumerable.cs  

Ed ecco una versione che ho appena preso in Home.spark per i file che hai specificato, anche se mi aspetto che a Home.spark associata un’azione anziché “Nessuno”:

   Home.spark      

Visual Studio lo mostra esattamente come ti aspetteresti.

Esiste un componente aggiuntivo VSCommands che consente di configurare i file dipendenti direttamente da IDE

Link aggiornato, precedente era http://mokosh.co.uk/vscommands

Cordiali saluti: Quando VSCommands è installato, basta selezionare tutti i file che si desidera essere dipendenti e il file di root, quindi fare clic destro -> Raggruppa elementi … e VSCommands chiederà quale dei file si desidera essere il file di root.

Non so come puoi farlo tramite l’interfaccia utente di Visual Studio stessa, ma se apri il file csproj in un editor di testo, puoi vedere come lo fanno per Global.asax.

Di solito assomiglia a qualcosa del genere:

   Global.asax  

Mentre le altre soluzioni qui (modifica del file di progetto) funzionano per singoli file, abbiamo fatto la stessa cosa, ma vogliamo che funzioni automaticamente per tutti i file * .conv e * .conv.js piuttosto che dover modificare il file di progetto per ognuno.

Quando aggiungiamo un nuovo file .conv alla nostra app, se disponiamo di un file * .conv.js esso annida automaticamente sotto di esso come ci si aspetterebbe da .aspx e * .aspx.cs.

Non riesco a trovare il tutorial originale che ho usato per configurarlo (implica l’hacking del Registro di sistema), ma qui ce n’è uno che ho trovato da una ricerca Google proprio ora che descrive la stessa cosa:

http://blog.dotnetwise.com/2009/09/visual-studio-2008-custom-nested-files.html

Se è necessario aggiungere code-behind per alcuni file, c’è una soluzione alternativa. Ad esempio, si desidera rendere Test.xaml.cs un figlio di Test.xaml . Completa i seguenti passi:

  1. Escludere Test.xaml e Test.xaml.cs dal progetto, salvare il progetto.

  2. Scarica il progetto.

  3. Ricarica il progetto.

  4. Fai clic su “Mostra file nascosti” nel riquadro File Explorer.

  5. File Test.xaml.cs verrà visualizzato come figlio di Test.xaml .

  6. Aggiungi nuovamente i file al progetto, salva il progetto.

Questo è tutto. Ora Test.xaml.cs dipende da Test.xaml .

Puoi modificare a mano il file di progetto, suggerito da John Skeed, oppure puoi anche dare un’occhiata all’estensione di annidamento dei file per Visual Studio che farà il lavoro per te.