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

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

我研究了PreProcessor指令,例如:

#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环境中进行编码时处理的代码的方法,但是如果可执行文件正在执行,则将不会进行处理无需更改任何项目属性即可运行。

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

谢谢!

最佳答案

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

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


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

10-02 06:32