我目前的情况(虽然我需要其他许多类似的情况)是我正在编写一个查询数据库的应用程序。
现在,在编码/调试时,我宁愿不必不断地重新输入我的数据库凭据。但是,如果用户运行可执行文件,我希望他们必须输入他们的凭据。
我研究过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环境中进行处理,但如果存在则不会被处理正在运行可执行文件而无需更改任何项目属性。
这样的事情存在吗?我该如何实现它?
谢谢!
答案 0 :(得分:1)
您可以使用Settings。
我认为这比直接存储在代码中更好。 只需使用不同的设置文件即可释放您的可执行文件,甚至不使用它。
答案 1 :(得分: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
但是,我认为简单地将值存储在配置文件中更有意义。