2016-02-09 385 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

相關問題