如何安装两个版本的metro应用程序?

时间:2011-11-17 04:36:42

标签: c# xaml windows-8 windows-runtime windows-store-apps

我有一个项目,它有相同的C#/ xaml metro应用程序的各个分支。我有一台平板电脑,我测试应用程序,我通常会在其上部署一个应用程序包来测试我的最新代码。出现的问题是我经常有同一个程序的多个分支。我希望能够在平板电脑上执行它们(比较和对比)。但是,当我去安装应用程序时,它说它已经安装,安装失败。我需要在分支上更改哪些设置,以便Windows 8将分支视为单独的应用程序?

3 个答案:

答案 0 :(得分:8)

我尝试创建两个具有相同名称但在不同父文件夹中的项目,并在项目目录上执行diff。必须有一种你可以找到这种方式的ID。

*编辑(添加答案) 比较csproj文件,我可以看到不同的项目GUID:

<ProjectGuid>{2BC8E996-5E25-4714-9327-930553131C04}</ProjectGuid>
<ProjectGuid>{DFC50C25-399E-437A-B641-E48FEA776EFE}</ProjectGuid>

但另一个区别是必须使打包的应用程序与众不同 - 在Package.appxmanifest中我也得到了不同的GUID:

<Identity Name="3b69e4ca-4072-4ec6-8790-4090bf72a8c3"
<Identity Name="2a943b24-68d2-4480-a475-1d606e546672"

改变guid应该会有所帮助。

答案 1 :(得分:1)

您应该能够将分支ID添加到包名称,然后这将是一个不同的包。

这对最终部署没有好处,但如果您安装了开发人员许可证,则应该有效。

所以

  • company.applicationname

VS

  • company.applicationname-branch1

  • company.applicationname-branch2

应被视为不同的包,因此允许您同时安装。

答案 2 :(得分:0)

&gt;我需要在分支上更改哪些设置,以便Windows 8将分支视为单独的应用程序?

您的AppxManifest.xml中的包名称是关键。要使用XPath-speak,用户每个/ Package / Identity [@Name]只能安装一个软件包 - 这是唯一的部分。

[和名称+出版商是重要的;如果Name = X,则安装Publisher = Y并且您尝试安装Name = X,Publisher = Z您将收到错误]

我相信如果Visual Studio控制名称,Visual Studio会将“.Debug”和“。Release”添加到名称中,因此您可以使用F5多种配置。 [这有其自身的问题,例如如果你使用通知,需要匹配名称...]