2012-12-13 15 views
5

Lavorando in MonoDevelop su un'app iOS e ho bisogno di iniziare a organizzare alcuni dei miei file in sottodirectory.Qual è il modo corretto di organizzare ViewControllers in un progetto Monotouch in MonoDevelop?

Ho iniziato creando una nuova cartella ViewControllers nella directory principale del progetto. Principalmente, ho appena provato a trascinare e rilasciare i file creati dallo storyboard Xcode in questa nuova cartella. Ciò mi dà errori di file mancanti e talvolta ho dovuto modificare manualmente i file storyboard per rimuovere o correggere il percorso dei file.

Mentre ho avuto un certo successo con questo, a volte anche questo finisce con i file dello storyboard che non aggiornano i file designer.cs dopo aver apportato modifiche in Xcode.

Qualcuno ha trovato il modo corretto di organizzare un grande progetto senza questi problemi?

+1

Una cosa che ho trovato: se sposto il file in una nuova posizione, devo chiudere MonoDevelop e riavviarlo. Il programma cercherà ancora il file .designer.cs nella sua vecchia posizione, ma se lo cancello va bene. Il semplice riavvio dell'applicazione dopo lo spostamento dei file sembra aiutare ad affrontare alcuni dei problemi. – cain

+0

Grazie per la vostra soluzione, ha lavorato per i miei progetti. – Renzzs

+0

Probabilmente è sufficiente ricaricare la soluzione. Puoi utilizzare l'elemento delle soluzioni recenti nel menu File, che è più veloce del riavvio completo di MonoDevelop. –

risposta

2

Dai un'occhiata a questo Bug Report on Xamarin: Bug 6130 - Spostamento di file con riferimento alle interruzioni di dipendenza.


L'attributo DependentUpon in un file csproj non viene aggiornato dopo il file principale viene spostato. Ad esempio, creando una nuova classe di controller su Xamarin Studio e quindi spostandola in una sottocartella si interrompe la dipendenza.

L'unico modo per risolverlo è tramite la modifica manuale del csproj e il ricaricamento del progetto in Xamarin Studio. Devi fare questo ogni volta che aggiungi un nuovo file.

Sembra che Xamarin Studio aggiunga invece le voci esistenti in csproj. Qui è csproj prima che mi trasferissi i file in una sottocartella:

<Compile Include="TestViewController.cs" /> 
<Compile Include="TestViewController.designer.cs"> 
    <DependentUpon>TestViewController.cs</DependentUpon> 
</Compile> 

dopo aver spostato il file nella sottocartella Controller.

<Compile Include="TestViewController.designer.cs"> 
    <DependentUpon>TestViewController.cs</DependentUpon> 
</Compile> 
<Compile Include="Controller\TestViewController.cs" /> 
<Compile Include="Controller\TestViewController.designer.cs"> 
    <DependentUpon>TestViewController.cs</DependentUpon> 
</Compile> 
Problemi correlati