我已经开始构建UWP应用程序了。在其中,我将使用不同的API部署来更改BaseURL,如下所示:
//DEV Api
public const string BaseURL = "http://mydevapi.com/devApi";
//Test Api
public const string BaseURL = "http://mytestapi.com/testApi";
//UAT Api
public const string BaseURL = "http://myuatapi.com/uatApi";
//Live Api
public const string BaseURL = "http://myliveapi.com/LiveApi";
所以基本上我想要一种方法来根据我正在制作的构建类型动态地改变baseURL,即Dev,Test或Live。
我之前有iOS经验,在XCode中我们为此目的创建了不同的schemes。
我已经看过文档,我认为我在c#和Visual Studio中最好的选择是Build configuration,因为它被描述为:
您可以为解决方案创建多个构建配置。对于 例如,您可以配置测试人员可以使用的调试版本 查找并修复问题,您可以配置不同类型的构建 您可以分发给不同的客户。
我创建了一个名为“AppName.Dev”的新构建配置,但是如何使用它将baseURL常量更改为Dev url?
这可能是一个基本问题,并显示我对c#和Visual studio缺乏经验,但我无法弄清楚即使在阅读了文档之后我如何实现它。帮助一个家伙?
编辑:阅读this article后,我创建了四种不同的配置并定义了以下条件编译符号:
我现在在我的常量文件中使用了定义的编译符号,如下所示:
public const string BaseURL = "";
#if DEV
public const string BaseURL = "http://mydevapi.com/devApi";
#elif TEST
public const string BaseURL = "http://mytestapi.com/testApi"
#elif UAT
public const string BaseURL = "http://myuatapi.com/uatApi"
#elif LIVE
public const string BaseURL = "http://myliveapi.com/LiveApi";
#endif
然而,符号似乎不起作用,因为它返回baseURL的空字符串,即使我在DEV配置中运行它。当我整理出来时会更新。
编辑2:想出来。我在我的解决方案中有两个项目,我在一个项目中定义配置及其符号,而在另一个项目中使用它们。发表答案。
答案 0 :(得分:1)
要添加此类构建配置,请执行以下步骤:
这样就完成了添加新的构建配置。下一部分是定义条件编译符号。为此,请按照以下步骤操作:
;
分隔。如果您有任何疑惑,请参阅以下屏幕截图:
完成此部分后,您可以在API常量文件中使用已定义的符号,如:
#if DEV
public const string BaseURL = "http://mydevapi.com/devApi";
#elif TEST
public const string BaseURL = "http://mytestapi.com/testApi"
#elif UAT
public const string BaseURL = "http://myuatapi.com/uatApi"
#elif LIVE
public const string BaseURL = "http://myliveapi.com/LiveApi";
#endif
这里,DEV,TEST,UAT和LIVE是我定义的配置。