我有一个项目,它具有相同 C#/xaml Metro 应用程序的各个分支。我有一台平板电脑,我可以在上面测试应用程序,我通常会在上面部署应用程序包来测试我的最新代码。出现的问题是我经常有同一个程序的多个分支。我希望能够在平板电脑上执行它们(比较和对比)。但是,当我去安装该应用程序时,它说它已经安装,并且安装失败。我需要在我的分支上更改哪些设置,以便 Windows 8 将分支视为单独的应用程序?
3 回答
我会尝试创建两个具有相同名称但在不同父文件夹中的项目,并对项目目录进行比较。必须有一个您可以通过这种方式找到的各种 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"
更改该指南应该会有所帮助。
您应该能够将分支 ID 添加到包名称,然后这将是一个不同的包。
这对最终部署没有好处,但如果您安装了开发人员许可证,则应该可以使用。
所以
company.applicationname
对比
company.applicationname-branch1
company.applicationname-branch2
应该被视为不同的软件包,因此允许您同时安装。
>我需要在我的分支上更改哪些设置,以便 Windows 8 将分支视为单独的应用程序?
AppxManifest.xml 中的包名称是关键。要使用 XPath-speak,用户只能为每个 /Package/Identity[@Name] 安装一个包——这是唯一的部分。
[而且名称+出版商很重要;如果 Name=X,Publisher=Y 已安装并且您尝试安装 Name=X,Publisher=Z 您将收到错误]
如果 Visual Studio 控制名称,我相信 Visual Studio 会将“.Debug”和“.Release”附加到名称中,因此您可以 F5 进行多种配置。[这有其自身的问题,例如,如果您使用需要匹配名称的通知...]