2

我目前的情况(尽管我在许多其他类似的情况下需要这个)是我正在编写一个查询数据库的应用程序。

现在,在编码/调试时,我宁愿不必不断地重新输入我的数据库凭据。但是,如果用户运行可执行文件,我希望他们必须输入他们的凭据。

我研究了预处理器指令,例如:

#If DEBUG Then
    Public Property DB_UserName As String = "MyUserName"
    Public Property DB_Password As String = "MyPassword"
#Else
    Public Property DB_UserName As String = ""
    Public Property DB_Password As String = ""
#End If

但这取决于我必须在将项目发布到野外之前更改项目的配置。(是的,我知道在我的代码中留下诸如凭据之类的东西并不是一个好的编程习惯,但现在请忽略这部分——就像我说的,这只是一个例子。)

我正在寻找/想知道它是否存在是一种能够设置变量/编写将在我编码/在 Visual Studio 环境中处理的代码的方法,但如果可执行文件正在被处理则不会无需更改任何项目属性即可运行。

这样的事情存在吗?我将如何实施它?

谢谢!

4

2 回答 2

1

您可以使用设置

我认为这比直接存储在代码中要好。只需使用不同的设置文件或什至没有它来发布您的可执行文件。

于 2013-03-06T16:07:45.453 回答
1

如果您真的想对这些值进行硬编码,您可以使用以下方法检查您是否在开发环境中运行:

Private Function processStartedByVisualStudioDebugger() As Boolean
    Dim result As Boolean = False
    Try
        If AppDomain.CurrentDomain.DomainManager.ToString().IndexOf("vshost", StringComparison.OrdinalIgnoreCase) >= 0 Then
            result = True
        End If
    Catch
    End Try
    Return result
End Function

但是,我认为简单地将值存储在配置文件中更有意义。

于 2013-03-06T16:08:08.337 回答