Come si incorpora app.config nei progetti C #?

Quando si compila un progetto C #, le impostazioni dell’app da app.config vengono salvate insieme al file exe. Ad esempio, se il nome del programma è “solve_np.exe”, ci sarà un “solve_np.exe.config” accanto ad esso, facendolo apparire meno accurato di quanto lo desideri. Come puoi incorporarlo nell’exe?

Ho provato a impostare Build Action su Embed Resource, ma questo non ha funzionato.

Aha. Suppongo che stai cadendo in disgrazia di Visual Studio che inserisce automaticamente elementi nella configurazione che NON DEVI configurati dall’utente finale.

In questo caso, usa le risorse. Basta aggiungere un nuovo file di tipo .resx. Con questo sarai in grado di aggiungere cose come stringhe e immagini al file di risorse. Dopo averlo creato, dovrebbe fornire un accesso statico alle risorse (in genere genera un file di codice dalle risorse per cui non è necessario accedere a ResourceManager).

EG Se avessi fatto resource.resx con una stringa chiamata MyConfigValue dopo una build dovrei essere in grado di accedere a questo come:

textBox.Text = Resources.MyConfigValue; 

Se vuoi valori che sono di tipo variabile ma non dovrebbero essere configurabili, questo è il posto giusto per metterli.

HTH.

Non è poco professionale avere un file app.config spedito insieme al tuo exe. Penso che la parola che stai cercando sia disordinata . Personalmente non trovo questo il caso, ma ognuno è diverso! Forse potresti semplicemente rendere il file app.config nascosto per impostazione predefinita?

Oppure un’altra alternativa è creare il proprio file di configurazione che è ansible salvare nella cartella App Data o anche memorizzare le impostazioni nel registro.

Ecco un altro fattore da considerare. Gli sviluppatori .Net stagionati sono abituati al design dell’applicazione standard, che incorpora l’utilizzo di file di configurazione sia nelle app Web sia nelle app desktop. Se ti allontani da quella pratica, renderà più difficile per gli sviluppatori che ti seguono capire cosa hai fatto. Anche sa sul server web può essere confuso dall’assenza di un file di configurazione.

Dal momento che praticamente tutti lo fanno in questo modo, il tuo codice non sembra “disordinato” per gli altri. Al contrario, sarebbe sconcertante non vedere un file di configurazione dove ci si aspetta.

Tipicamente la teoria di un file di configurazione è che memorizza le impostazioni che potresti voler cambiare una volta che hai distribuito l’applicazione (per qualcosa come le preferenze dell’utente). Per fare questo, è necessario memorizzare da qualche parte all’esterno dell’applicazione. Se si utilizza l’impostazione predefinita, si ottiene “[Your] .exe.config”. Ci sono molte altre opzioni che potresti guardare, ma quasi ognuna di esse finisce con un file scritto da qualche parte, se si fornisce un meccanismo che salva le impostazioni di qualche tipo.

Sono d’accordo con serhio darasd e Quibblesome ma puoi semplicemente eliminare “solve_np.exe.config” e userà solo le configurazioni di default.

Dopo aver considerato ciò che è stato scritto in questi commenti e in altre ricerche, ho deciso che il modo migliore per gestire il mio problema di volere che la mia stringa di connessione Entity Framework venisse incorporata nel mio eseguibile invece di richiedere il file MyApplication.exe.config con la mia soluzione implementata era per creare una class derivata come tale:

 Public Class MyEFDataContainerLocal Inherits MyEFDataContainer Public Sub New() MyBase.New(My.Settings.MyEFContainerConnectionString) End Sub End Class 

Ho appena creato un’impostazione applicazione di tipo Connection String che conteneva la stessa stringa di ciò che si trova nel file App.Config. Ho appena dovuto sostituire il "e; è con citazioni attuali.

Quindi, ogni volta che volevo utilizzare MyEFDataContainer come in Dim db As New MyEFDataContainer dovrei semplicemente usare Dim db As New MyEFDataContainerLocal .