在Windows Forms C#项目中,我有一个指向SSRS报告的URL,该URL取决于开发/测试/生产环境:
\\dev\path\to\report
\\test\path\to\report
\\prod\path\to\report
我想知道URL是否可以在源代码中硬编码?更一般地说,如果有一个依赖于开发/测试/生产的字符串,我怎么能不在源代码中硬编码呢?
rfbsl7qr1#
我不知道这对您的情况是否有帮助,但您也可以在构建属性中定义配置,并根据特定的运行时上下文设置条件编译符号。
所以如果你有dev,test和prod定义不同的符号。。
你可以利用它来做这样的事情:
[TestClass] public class SandboxManager { public static SemaphoreSlim UIClosedAwaiter = new SemaphoreSlim(1, 1); public static SemaphoreSlim SS_Boot = new SemaphoreSlim(0, 1); [AssemblyInitialize] public static async Task BootUnitTest(TestContext context) { ResourceInfo.UTRoot = @"D:\Github\xamarin-21\sasquatch-net-standard-21\sasquatch-net-standard"; var dir = Path.Combine(ResourceInfo.UTRoot, "Test", "Logs", $"{DateTime.Now:yyyy-MM-dd}"); Directory.CreateDirectory(dir); TestBase.LogFile = Path.Combine(dir, "log.txt"); if(File.Exists(TestBase.LogFile)) File.Delete(TestBase.LogFile); #if SBX_SQFA UIClosedAwaiter.Wait(0); SQInstance.RunContext = RunContext.UnitTestFullUI; MainActivitySandbox.Boot(); await SS_Boot.WaitAsync(); await onBootSQFA(); #elif SBX_UI_LITE UIClosedAwaiter.Wait(0); SQInstance.RunContext = RunContext.UnitTestLiteUI; AppWOUISandbox.Boot(); UIControlSandbox.Boot(); await SS_Boot.WaitAsync(); #elif SBX_MOCK_AI SQInstance.RunContext = RunContext.UnitTestLiteInstance; AppWOUISandbox.Boot(); #else SQInstance.RunContext = RunContext.UnitTestPrimitive; #endif SS_Boot.EnsureRelease(); await Task.Delay(100); }
1条答案
按热度按时间rfbsl7qr1#
我不知道这对您的情况是否有帮助,但您也可以在构建属性中定义配置,并根据特定的运行时上下文设置条件编译符号。
所以如果你有dev,test和prod定义不同的符号。。
你可以利用它来做这样的事情: