Куда пропал мой редактор настроек в меню свойств проекта? - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь поместить строку подключения к БД в файл конфигурации приложения для моего консольного проекта C# в VS Community 2019, чтобы я мог получить доступ к строке из центрального расположения. Мне пришлось создать файл app.config, добавив новый в мой проект. Когда я пытаюсь получить к нему доступ с помощью ConfigurationManager, я получаю исключение NullReferenceException «Объект не установлен как экземпляр объекта».

Это содержимое моего файла App.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name ="DBConnection"
         providerName="System.Data.SqlClient"
         connectionString = "Data Source=(localdb)\ProjectsV13; Initial Catalog=DATAMINE; Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False" />
  </connectionStrings>
  <customSettings>

  </customSettings>
</configuration>

И для простоты я пытаюсь получить доступ через:

using System;
using System.Configuration;

    public class Program
    {
        static void Main(string[] args)
        {
            var sd = ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString;
        }
    }

Во время поиска неисправностей я вошел в Свойства моего проекта, чтобы получить доступ к Редактору настроек, но опция меню отсутствует (см. пи c). Я даже попытался создать новое консольное приложение, проверил его свойства и редактора настроек там тоже не существует. Я ценю любую помощь!

Отсутствует редактор настроек из сообщества Visual Studio 2019

Ответы [ 3 ]

0 голосов
/ 09 апреля 2020

Это заняло целый день, просматривая форумы. Я использую. NET Core 3.0 в Visual Studio Community 2019. По сути, мой ConfigurationManager пытался получить доступ к файлу конфигурации из ~ \ bin \ debug \ netcoreapp3.0 \ DESCLogicFramework.dll.config. Откуда этот файл произошел, я понятия не имею, но я предполагаю, что он был создан автоматически при создании моего приложения. Итог, я должен был переписать это.

Примечание: я выяснил это, используя:

var configfile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

, а затем изучив объект configfile в отладчике и найдя свойство с именем "Filepath".

Шаги, которые я предпринял, чтобы исправить это, были:

  1. Переименуйте мой файл app.config в «assemblyname'.exe.config», например, мой в итоге оказался «DESCLogicFramework.exe.config» "

  2. Поместите этот файл конфигурации в мою директорию проекта root.

  3. Измените свойство конфигурации файла Действия сборки на" Определение приложения "и его свойство «Копировать в выходной каталог» в «Копировать, если новее». И то, и другое можно открыть, щелкнув правой кнопкой мыши по вашему файлу конфигурации и выбрав «Свойства». Откроется окно Свойства.

  4. Открыв файл проекта .csproj и добавив следующие строки xml прямо перед закрывающим ProjectTag, вы сообщаете сборке, что нужно скопировать ваш Файл .config в папку сборки и укажите расширение .dll.config.

  <!-- START: This is a buildtime work around for https://github.com/dotnet/corefx/issues/22101 -->
  <Target Name="CopyCustomContent" AfterTargets="AfterBuild">
    <Copy SourceFiles="DescLogicFramework.exe.config" DestinationFiles="$(OutDir)\DescLogicFramework.dll.config" />
  </Target>
  <!-- END: This is a buildtime work around for https://github.com/dotnet/corefx/issues/22101 -->
После этого я убедился, что проект "использует System.Configuration", и получил доступ к содержимому файла с помощью
var conn = ConfigurationManager.ConnectionStrings["DBconnection"];

Редактировать: я все еще не вижу Редактора настроек в свойствах моего проекта, но я смог решить проблему, которая у меня была без нее.

0 голосов
/ 09 апреля 2020

У меня возникла та же проблема со свойствами / настройками. Настройки.

  1. щелкните правой кнопкой мыши Настройки. Настройки
  2. выберите «Открыть с помощью»
  3. Выбрать » Дизайнер настроек "
  4. нажмите" установить по умолчанию "

enter image description here

https://developercommunity.visualstudio.com/content/problem/962124/propertiessettings-editor-view-missing.html

0 голосов
/ 09 апреля 2020

Я проверяю код с вашим App.config, и он может получить строку подключения. Кроме того, я рекомендую использовать appSettings вместо customSettings.

Что касается Settings, его можно найти в Visual Studio Enterprise 2019.

enter image description here

...