Подтвердить что ты не робот

Как вы встраиваете app.config в проекты С#?

При компиляции проекта С# параметры приложения из app.config сохраняются вместе с EXE файлом. Например, если имя программы "solve_np.exe", рядом с ним будет "solve_np.exe.config", что делает его менее аккуратным, чем я хочу. Как вы можете встроить его в .exe?

Я попытался установить Build Action для вставки ресурса, но это не помогло.

4b9b3361

Ответ 1

Ага. Наверное, вы ошибаетесь в том, что Visual Studio автоматически помещает контент в конфигурацию, которую вы НЕ хотите настроить конечным пользователем.

В этом случае используйте ресурсы. Просто добавьте новый файл типа .resx. С этим вы сможете добавить в файл ресурсов такие вещи, как строки и изображения. После его создания он должен обеспечивать статический доступ к ресурсам (он обычно генерирует файл кода из ресурсов для вас, поэтому вам не нужно самостоятельно обращаться к ResourceManager).

например. Если я создал resource.resx с строкой, называемой MyConfigValue после сборки, я должен иметь доступ к ней, например:

textBox.Text = Resources.MyConfigValue;

Если вам нужны значения, которые являются переменными вида, но не должны быть конфигурируемыми, то это подходящее место для их размещения.

НТН.

Ответ 2

Не непрофессионально иметь файл app.config, поставляемый вместе с вашим exe. Я думаю, что слово you может искать untidy. Я лично не считаю, что это так, но все разные! Возможно, вы могли бы просто скрыть файл app.config по умолчанию?

Или другая альтернатива - создать свой собственный файл конфигурации, который вы могли бы сохранить в папке App Data или даже сохранить настройки в реестре.

Ответ 3

Вот еще один фактор, который следует учитывать. Опытные разработчики .Net привыкли к стандартному дизайну приложений, который включает в себя использование файлов конфигурации как в веб-приложениях, так и в настольных приложениях. Если вы откажетесь от этой практики, вы сделаете ее более трудной для любых разработчиков, которые последуют за вами, чтобы понять, что вы сделали. Даже sa на веб-сервере может быть смущен отсутствием файла конфигурации.

Поскольку почти все так делают, ваш код не выглядит "неопрятным" для других. Напротив, было бы не смотреть на файл конфигурации, где ожидалось.

Ответ 4

Как правило, теория файла конфигурации заключается в том, что он сохраняет параметры, которые вы можете изменить, после того как вы развернули приложение (для чего-то вроде пользовательских настроек). Для этого вам нужно хранить где-то внешнее приложение. Если вы используете настройку по умолчанию, вы получаете "[Your].exe.config". Есть много других вариантов, на которые вы могли бы обратить внимание, но почти каждый из них заканчивается файлом, написанным где-то, если вы предоставляете механизм, который сохраняет какие-либо настройки.

Ответ 5

Я согласен с serhio darasd и Quibblesome, но вы можете просто удалить "solve_np.exe.config", и он просто будет использовать конфигурации по умолчанию.

Ответ 6

После рассмотрения того, что было написано в этих комментариях и других результатах поиска, я решил, что лучший способ справиться с моей проблемой, связанной с тем, что моя строка подключения Entity Framework должна быть встроена в мой исполняемый файл, а не с файлом MyApplication.exe.config с моим развернутым решением было создание такого производного класса, как:

Public Class MyEFDataContainerLocal
   Inherits MyEFDataContainer

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

Я только что создал настройку приложения типа Connection String, содержащую ту же строку, что и в файле App.Config. Мне просто пришлось заменить &quote; на фактические кавычки.

Тогда всякий раз, когда я хотел использовать MyEFDataContainer, как в Dim db As New MyEFDataContainer, я просто использовал бы Dim db As New MyEFDataContainerLocal.