【问题标题】:Windows Universal App "rebranding": one app but multiple packagesWindows 通用应用程序“更名”:一个应用程序但多个包
【发布时间】:2016-11-04 16:57:55
【问题描述】:

我为 Windows 8.1/Windows Phone 8.1 开发了一个通用应用程序。

此应用程序必须默认推荐给主要客户,但其他客户必须能够通过提供自己的名称、自己的资产(图标、闪屏等)和自己的 UI 颜色来自定义它。我正在寻找一个允许我这样做的解决方案。

因此我想创建多个文件“appxmanifest”:

  • 默认的“Package.appxmanifest
  • 每个客户一个“Customer1.appxmanifest”、“Customer2.appxmanifest”、...

=> 但我不知道如何指定不同的“appxmanifest”在编译时使用:这可能吗?

此外,UI 颜色在 xaml 文件中定义,该文件使用“MergedDictionaries”与“App.xaml”文件合并。

=>有没有办法做到这一点?

【问题讨论】:

  • 您可以尝试使用构建事件在构建之前复制/替换清单文件
  • 我正在寻找如何使用预构建步骤来应用它。但是我没有看到如何解决商店关联步骤:我需要在构建之前将商店上的项目关联起来。我不认为有办法做到这一点......

标签: windows-phone customization win-universal-app appxmanifest


【解决方案1】:

您可以结合使用build configurationpre-build 事件来做到这一点。

  1. 为每个客户创建一个构建配置,并附上他们的名字
  2. 在您的项目目录中创建一个 prebuild.bat 文件,该文件会将正确客户的文件复制到项目目录中。
@setlocal enableextensions enabledelayedexpansion  
@echo off  
set buildconfig=%1  
set projectdir=%~2  

if %buildconfig% == "Customer1" goto CopyCustomerFiles  
if %buildconfig% == "Customer2" goto CopyCustomerFiles  
goto End 

:CopyCustomerFiles   
xcopy "%projectdir%\customers\%buildconfig%" "%projectdir%" /I/Y/R/S  
goto End

:End  
endlocal  
  1. 像这样添加预构建事件:
    "$(ProjectDir)prebuild.bat" "$(ConfigurationName)" "$(ProjectDir)"

批处理文件会将客户特定文件夹的全部内容复制到您的项目中,其中可能包括 appxmanifest 和 xaml 文件。 这假定所有客户特定文件都位于 Windows Phone 项目的文件夹 customers/[客户名称] 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-26
    • 2013-07-15
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多