在Visual Studio中使用自定义构建配置

3
在我的客户端应用程序中,有时我连接到 localhost:1242\SomeService.asmx,有时连接到 someDomain:1242\SomeService.asmx。换句话说,有时我想本地测试,有时又想远程测试。
VS提供的默认选项是调试和发布。我想创建自定义选项,实际上我只是创建了一个新的构建配置:enter image description here 不管怎样,我如何在代码中知道我是否正在使用该配置?
我想要做类似这样的事情:
if(Configuration.Type == ConfigTypes.Local)
    ConectionString = "localhost:1242:\SomeService.asmx";
else if (Configuration.Type == ConfigTypes.Remote1)
    ConectionString = "SomeDomain1:1242:\SomeService.asmx";
else if (Configuration.Type == ConfigTypes.Remote2)
    ConectionString = "SomeDifDomain:1242:\SomeService.asmx";

发布模式更高效?我该如何指定这些设置?


你可以使用配置转换和一个app.config文件吗? - Daniel A. White
你可以使用不同的条件编译常量吗? - Dmitry
从未尝试过。是的,我可以。我只是好奇如何使其工作,因为通过更改下拉菜单而不是去app.config文件中进行配置更改会非常简单和方便。 - Tono Nam
是的,这是一个构建时的过程。关于它们有很多资源可供参考。 - Daniel A. White
1个回答

7
您可以定义条件编译符号。
项目属性→构建选项卡→条件编译符号
为不同的配置定义不同的符号,例如:
  • 在“本地”配置中使用SRV_LOCAL;
  • 在“Remote1”配置中使用SRV_REMOTE1;
  • 在“Remote2”配置中使用SRV_REMOTE2

然后在代码中:

#if SRV_LOCAL
    private const string SERVER = "localhost";
#elseif SRV_REMOTE1
    private const string SERVER = "SomeDomain1";
#elseif SRV_REMOTE2
    private const string SERVER = "SomeDifDomain";
#endif

谢谢你的帮助!再加一点,我只是想看看另一种选项是否可行。如果不可能的话,我会接受这个答案。 - Tono Nam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接