2012-01-03 6 views
11

Abbiamo un file SQL che è una risorsa incorporata nella nostra soluzione. Quando il file sql cambia e facciamo clic su debug, la soluzione non ricostruisce il progetto con la risorsa incorporata se non è stato modificato alcun codice C#.Force Visual Studio Rebuild on Embedded Resource Changed

Ho avuto questo problema con altre soluzioni per tutto il tempo che posso ricordare, e personalmente so di creare Build Solution per assicurarmi che venga creato ... ma questo è diventato un problema per un certo numero di nuovi sviluppatori che non posso ricordarmi di farlo e confondermi quando le loro modifiche al file SQL non si riflettono al momento del debug ... quindi mi chiedevo se qualcuno conosce una soluzione facile.

+0

Cosa stai incorporando per quanto riguarda la risorsa di SQL ..? forse questo potrebbe essere il problema .. puoi dare una spiegazione più dettagliata ..? – MethodMan

+0

significa che la risorsa embeded di 'SQL file' è un'opzione obbligatoria? Voglio dire, se fosse un file separato, c'è un workarround, per copiare quel file su build di successo con 'xcopy', definendolo all'interno di' Proprietà progetto '. – Tigran

+0

La risorsa incorporata è necessaria. È impacchettato in un assembly azione personalizzato utilizzato da un programma di installazione per eseguire script di migrazione. Lo stesso assembly viene utilizzato in modalità Debug dell'app per assicurarsi che il DB su cui stanno lavorando sia aggiornato. – Jeff

risposta

3

La soluzione più semplice è "ricostruire" anziché "creare". Altre persone "puliscono" e poi "costruiscono" per essere sicure al 100%.

Le risorse incorporate non vengono aggiornate nelle DLL di debug a meno che la DLL di output non venga troncata, il che può essere garantito solo con la ricompilazione e la pulizia.

+1

La ricostruzione è definita per la pulizia, quindi la generazione; non c'è più sicurezza nel fare una pulizia esplicita (forse oltre a essere sicuri di aver premuto il tasto destro/combinazione di tasti) –

0

Sfortunatamente, una pulizia e una ricostruzione non sembrano funzionare sempre per i file di risorse. Il mio problema era con un file di risorse di stringa, e come ho risolto è stato il seguente in VS2016:

  1. Chiudere RESX e .Designer.cs se sono aperti nell'IDE
  2. Delete classe .Designer.cs (fare clic destro, cancellare in soluzione Explorer)
  3. doppio clic resx file in Esplora soluzioni per aprire
  4. Se necessario, cambiare 'accesso modificatore' dal 'pubblico' a 'No Code Generation', e salvare
  5. Change "Modificatore di accesso" da "Nessuna generazione di codice" a "Pubblico" e salva => il codice di .Designer.cs dovrebbe quindi aggiornare
0

Ho avuto lo stesso problema con VS2017.

Questo è ciò che ha funzionato per me:

  1. Aprire il file .resx. Assicurati di essere nell'editor Resource, non si utilizza un editor XML dato che a volte i cambiamenti fatti non ci innescare la generazione di Designer.cs
  2. Assicurarsi Designer.cs non è aperto .
  3. fare un piccolo cambiamento, salvare
  4. annullare la modifica, salvare
Problemi correlati