Я не разработчик WinForms, но уже давно занимаюсь ASP.NET.
Я должен написать что-то в VB.NET, которое просто помещает некоторые простые данные в базу данных.
Поэтому я создал приложение VB.NET WinForms (Visual Studio 2005).
Когда я запускаю приложение, оно прекрасно работает:
Dim conMyData As SqlConnection
Dim cmdInsert As SqlCommand
Dim isSaved As Boolean
isSaved = True
conMyData = Nothing
Try
conMyData = New SqlConnection(My.Settings.MyConnectionString)
cmdInsert = New SqlCommand("insComputer2", conMyData)
Это также работает нормально, если я использую:
Dim conMyData As SqlConnection
Dim cmdInsert As SqlCommand
Dim isSaved As Boolean
isSaved = True
conMyData = Nothing
Dim str As String = ConfigurationManager.ConnectionStrings("connect").ConnectionString
Try
conMyData = New SqlConnection(str)
cmdInsert = New SqlCommand("insComputer2", conMyData)
То есть, если я определю строку подключения внутри свойств проекта. Если я собираю свой проект, извлекаю файл .exe из папки bin \ debug и запускаю его на своем рабочем столе, он работает ТОЛЬКО если у меня есть версия с надписью My.Settings.MyConnectionString
В противном случае, если я использую другую версию, в которой я извлекаю строку подключения из моего файла app.config, она будет работать, только если я запускаю проект через Visual Studio, она не будет работать, просто открыв .exe на моем рабочем столе , Возможно, что-то вроде ConnectionString не установлено, или иногда указывается, что объект не установлен как экземпляр чего-либо ...
Мой вопрос: почему это работает изнутри проекта?
Это потому, что при сборке проекта он не может ссылаться на этот файл app.config, поскольку я переместил его на рабочий стол?