C# Windows Phone 8应用程序中特定于配置的变量值
我想做的是根据当前配置设置不同的变量值。因此,当我在调试中运行项目时,我希望应用程序指向我的开发堆栈。当我在发行版中运行应用程序时,我希望该应用程序在我的生产堆栈上运行。我想创建一个Beta配置,它与我的发布配置设置基本相同,但略有不同 谢谢 看看Visual Studio的扩展。它允许您根据当前生成配置转换配置文件 或者你也可以使用。但我建议使用配置转换 编辑: 鉴于您无法使用配置转换,我认为您必须执行编译符号的路径。因此,我将创建配置文件,然后让一个类在运行时使用编译符号来读取正确的配置文件。大致如下:C# Windows Phone 8应用程序中特定于配置的变量值,c#,.net,windows,visual-studio,windows-phone-8.1,C#,.net,Windows,Visual Studio,Windows Phone 8.1,我想做的是根据当前配置设置不同的变量值。因此,当我在调试中运行项目时,我希望应用程序指向我的开发堆栈。当我在发行版中运行应用程序时,我希望该应用程序在我的生产堆栈上运行。我想创建一个Beta配置,它与我的发布配置设置基本相同,但略有不同 谢谢 看看Visual Studio的扩展。它允许您根据当前生成配置转换配置文件 或者你也可以使用。但我建议使用配置转换 编辑: 鉴于您无法使用配置转换,我认为您必须执行编译符号的路径。因此,我将创建配置文件,然后让一个类在运行时使用编译符号来读取正确的配置文件
public class ConfigurationLoader()
{
private readonly string _configFile;
public ConfigurationLoader()
{
#if DEBUG
_configFile = "app.Debug.config";
#else
_configFile = "app.Release.config";
#endif
}
public UniversalAppConfig LoadCofig()
{
// Read file
// Create UniversalAppConfig
}
}
public class UniversalAppConfig()
{
public int ConfigurationValueA { get; set; }
public int ConfigurationValueB { get; set; }
}
您可以在“项目属性->顺便说一句”下设置符号。慢速猎豹听起来正是我想要的,但我正试图在支持Windows Phone Store和Windows Store应用程序的通用应用程序中实现这一点,但是Slow Cheetah软件包似乎与此类项目不兼容。在项目的项目设置中,有一个位置可以定义其他符号。您可以进入其中一个项目,为MY_SPECIAL_THING添加一个定义,而不要在另一个项目中设置它。然后,在你的代码中,你会在它应该编译的地方使用
#if MY_SPECIAL_THING
。我已经在为一些东西使用编译符号,但我希望有一种内置的方法来处理这个问题。我认为你的解决方案是最好的,因为它只需要一点点的工作就能给我想要的东西。谢谢。考虑了一会儿,我还有一个问题。我总是考虑到安全性,并假设我想在这些配置文件中存储像密钥这样的东西。我应该担心有人打开appxbundle文件并找到我的密钥吗?