2010-02-04 26 views
22

Ho Resources.resx, che viene utilizzato per generare Resources.designer.cs. Dovrebbe essere verificato Resources.designer.cs o posso fare affidamento su Visual Studio generandolo quando richiesto?Le risorse.Designer.cs dovrebbero essere sotto il controllo del codice sorgente?

+7

[Microsoft afferma] (http://connect.microsoft.com/VisualStudio/feedback/details/285765/resources-designer-cs-doesnt-automatically-get-rebuilt-despite-it-being-an-auto- file generato) "gli strumenti personalizzati vengono eseguiti in fase di progettazione e non in fase di build, pertanto il file dipendente deve essere controllato nel controllo del codice sorgente." –

risposta

11

La mia preferenza è:.. Se è modificato dal sistema di compilazione, assicurarsi che il processo di compilazione creerà e non controllare in

Per i file generati automaticamente come 'stilista', io li controllano a loro solo ottenere modificato quando altri componenti vengono modificati (da me). È generato da VS e non modificato dal sistema di build.

1

Non sono sicuro al 100% degli scenari di generazione intorno a questo file. Penso che sia probabile che Studio, o più appropriatamente msbuild, rigenererà il file ogni volta che crei la tua applicazione ma non ne sono sicuro.

ogni modo, sarei ancora controllare questo file in per un paio di motivi

  1. E 'il default per la maggior parte dei fornitori di controllo del codice sorgente in Visual Studio. Hanno pensato molto più a questo problema di me e probabilmente hanno buone ragioni per fare questo
  2. Debug: è improbabile che ci sarebbe mai stato un problema in Resource.Designer.cs ma se ci fosse sarebbe stato costretto compilare prima di poter allegare/eseguire il debug
  3. Il controllo del codice sorgente dovrebbe essere una cronologia delle origini. Che cosa sta facendo se non riesci a vedere tutte le fonti relative alla tua applicazione.

Il primo motivo è il più importante

+0

Al punto 1, potrebbe essere il caso, ma il team Xamarin stesso nei loro progetti GitHub lo ha ignorato, quindi mi sento come se fosse solo una parte dell'argomento –

6

mi sono imbattuto in tuo post per un problema che sto vivendo, non è proprio la stessa cosa, ma mi ha aiutato a trovare una soluzione temporanea. Questo è quello che ho trovato che potrebbe aiutarti ...

Sto creando un semplice file di risorse stringa. Quindi utilizzo un programma CodeProject modificato che lo traduce in lingue straniere. (Useremo i servizi professionali una volta stabilizzato il codice) L'utilità non crea i file designer.cs. Effettuare una ricostruzione di non ha ricreato i file. Sembra che ogni volta che si utilizza uno strumento esterno (non il designer di Visual Studio) per modificare un file resx, si perderanno quelle modifiche sincronizzate. Nel mio caso il file del designer è usato semplicemente per scrivere fortemente le stringhe sui nomi delle proprietà. Se si utilizzano gli ID per estrarre la stringa (metodo precedente), questi file non saranno necessari e quindi non sarà necessario controllarli per il controllo del codice sorgente. Tuttavia, se si sta utilizzando l'accesso fortemente digitato a queste stringhe (metodo più moderno), è necessario verificarle.

Per inciso ... ho trovato un modo per risincronizzare quei file designer.cs con il loro contatore resx parti come quello era il mio problema ... ne avevo bisogno. Selezione di un file resx in Solution Explorer e impostazione della proprietà CustomTool su PublicResXFileCodeGenerator ha creato immediatamente il file designer.cs. Sfortunatamente, se è già impostato, devi annullarlo e quindi re-impostarlo per creare il file. Se qualcuno sa come forzare una ri-creazione di questi tramite mezzi automatici ... Lo apprezzerei molto.

Grazie.

+7

Ciao Dennis. Puoi eseguire il generatore di codice ResX manualmente facendo clic con il tasto destro sul file resx e scegliendo "Esegui strumento personalizzato". – theDmi

Problemi correlati