2016-02-09 164 views
0

通常,我使用位于app.config中的预定义配置来运送我的应用程序。因此,我可以为客户发布A其他预定义设置,然后对于客户B如何在设置中部署uwp应用程序

如何在uwp中实现此目的?

+0

您是通过侧面加载部署应用程序吗? – Herdo

+0

是的,这是目前的计划。 – Briefkasten

回答

0

由于UWP应用程序旨在通过商店进行部署,因此不再需要app.config文件。如果你仍然想产生类似的行为,你将不得不使用编译器指令。

最简单的方法是创建一个文件类同知名app.config

<Config> 
    <!-- key-value pairs go here --> 
</Config> 

创建你拥有的每一个客户的配置文件...

  • Assets
    • CustomerA.config
    • CustomerB.config
    • CustomerC.config

...并通过编译器指令加载:

public Config GetConfig() 
{ 
    var configFileName = GetConfigName(); 
    // Load config... 
} 

private string GetConfigName() 
{ 
#if CUSTA 
    return "CustomerA.config"; 
#endif 
#if CUSTB 
    return "CustomerB.config"; 
#endif 
#if CUSTC 
    return "CustomerC.config"; 
#endif 
    throw new NotSupportedException(
     "Assembly was compiled for a customer which config doesn't exist."); 
} 

注:如果不同的配置文件的数量可能会增加一个未知号码,您宁愿实施标识客户并提供配置的Web服务。

编辑:在使用你的应用程序一个配置文件也有可能(这将阻止编译器指令),因此通过XSLT修改XML在不同的生成配置。
原理保持不变,但是将烦人的部分从代码中移出到XSLT中。

+0

将CustomerA.config,CustomerB.config ...放入Assets文件夹时,它们会被部署到每个客户身上吗?由于每个客户都有自己的Web服务uri,并且我想将它们存储到.config文件中,因此customerA可以看到customerB的webservice配置是不好的。 – Briefkasten

+0

@Briefkasten然后你宁愿使用我编辑过的内容。为每个客户使用一个将通过XSLT进行修改的“XML”文件。由于这个原因,每个客户都会收到他们自己的XML,并且无法看到其他客户的XML。 – Herdo

相关问题