c# – 如何判断代码是否从Visual Studio / Cassini本地运行
发布时间:2020-12-15 08:42:35 所属栏目:百科 来源:网络整理
导读:我有一个接口,我们称之为ILocateLogFile,带有dev / beta / production服务器的标准实现,以及只能在本地开发环境中工作的接口.如果我在本地或在服务器上运行,我似乎无法想出一个很好的干净方式来决定(最好是在编译时,但运行时会没问题).如果这很重要,这是在II
我有一个接口,我们称之为ILocateLogFile,带有dev / beta / production服务器的标准实现,以及只能在本地开发环境中工作的接口.如果我在本地或在服务器上运行,我似乎无法想出一个很好的干净方式来决定(最好是在编译时,但运行时会没问题).如果这很重要,这是在IIS上托管的WCF应用程序.
我提出的最好的是使用编译器符号,如: ILocateLogFile locateLogFile; #if DEBUG locateLogFile = new DevSandboxLogFileLocator(); #else locateLogFile = new LogFileLocator(); #endif 问题是,编译符号由构建设置,我无法控制,我想确定.是否有一些自动方法来检查Visual Studio的存在?或者至少检查一下卡西尼而不是IIS? 解决方法
我这样做的两种方法1你可以检查进程名称
bool isRunningInIisExpress = Process.GetCurrentProcess() .ProcessName.ToLower().Contains("iisexpress"); 或者使用自定义设置更新配置文件 <appSettings> <add key="ApplicationEnvironment" value="LOCAL_DEV" /> </appSettings> 您为每个环境专门更新并为您提供应用程序查询 我不确定是否有一种方法可以在编译时确定这一点,除了为每个环境提供特殊的构建配置并为每个构建放置一个自定义PRAGMA.我个人认为这不是那么优雅,但它也可以起作用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |