Как вы встраиваете app.config в проекты С#?
При компиляции проекта С# параметры приложения из app.config сохраняются вместе с EXE файлом. Например, если имя программы "solve_np.exe", рядом с ним будет "solve_np.exe.config", что делает его менее аккуратным, чем я хочу. Как вы можете встроить его в .exe?
Я попытался установить Build Action для вставки ресурса, но это не помогло.
Ответы
Ответ 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. Мне просто пришлось заменить "e;
на фактические кавычки.
Тогда всякий раз, когда я хотел использовать MyEFDataContainer, как в Dim db As New MyEFDataContainer
, я просто использовал бы Dim db As New MyEFDataContainerLocal
.