我目前的情况(尽管我需要在许多其他类似情况下使用它)是我正在编写一个查询数据库的应用程序。
现在,在进行编码/调试时,我不想不必不断重新输入数据库凭据。但是,如果用户运行可执行文件,我希望他们必须输入其凭据。
我研究了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
但是,我认为仅将值存储在配置文件中会更有意义。