Windows runtime 本地部署Windows应用商店应用程序的并行版本
我正在开发一个Windows应用商店应用程序,我喜欢在开发下一个应用程序时保留最新安装的基线 问题在于,每当我在Visual Studio 2013中运行当前的开发版本(使用F5)时,它都会卸载最新的基线 我通过手动编辑Windows runtime 本地部署Windows应用商店应用程序的并行版本,windows-runtime,windows-store-apps,Windows Runtime,Windows Store Apps,我正在开发一个Windows应用商店应用程序,我喜欢在开发下一个应用程序时保留最新安装的基线 问题在于,每当我在Visual Studio 2013中运行当前的开发版本(使用F5)时,它都会卸载最新的基线 我通过手动编辑包.appxmanifest创建并安装基线,如下所示: 编辑标识名 将.R附加到应用程序名称的每个实例(例如MyApp附加到MyApp.R) (下面是完整的文件列表) 我认为这应该足够了,但我徒劳地试图让它工作,我还在项目属性中,将.R附加到程序集名称,例如MyApp.R,并
包.appxmanifest
创建并安装基线,如下所示:
- 编辑标识名
- 将
附加到应用程序名称的每个实例(例如.R
附加到MyApp
)MyApp.R
.R
附加到程序集名称,例如MyApp.R
,并更改了MyApp\u TemporaryKey.pfx
然后,当我运行应用程序(F5)时,它将作为MyApp.R
安装,并持续存在,可以在Visual Studio外部使用
问题是,当我撤销这些更改以恢复开发,并以MyApp
的身份再次运行时,MyApp.R
被卸载,我只剩下最新版本,即MyApp
我知道这是可以实现的,因为我以前做过一次。我没有准确记录我当时做了什么,因为这似乎不太难,但经过几个小时的努力,我再也做不到了。要么是我没有正确地复制这些步骤,要么是Windows 8.1自上次复制以来发生了一些变化
为什么Windows认为这两个版本是同一个应用程序?是否有其他身份或钥匙我没有更改
Package.appxmanifest:
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest" xmlns:m2="http://schemas.microsoft.com/appx/2013/manifest">
<!--<Identity Name="8086b500-65af-4dd4-a67b-923c43472921" Publisher="CN=joedev_000" Version="1.0.0.0" />-->
<Identity Name="11111111-65af-4dd4-a67b-923c43472930" Publisher="CN=joedev_000" Version="1.0.0.0" />
<Properties>
<DisplayName>MyApp.R</DisplayName>
<PublisherDisplayName>joedev_000</PublisherDisplayName>
<Logo>Assets\StoreLogo.50x50.png</Logo>
</Properties>
<Prerequisites>
<OSMinVersion>6.3.0</OSMinVersion>
<OSMaxVersionTested>6.3.0</OSMaxVersionTested>
</Prerequisites>
<Resources>
<Resource Language="x-generate" />
</Resources>
<Applications>
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="MyApp.R.App">
<m2:VisualElements DisplayName="MyApp.R" Square150x150Logo="Assets\SquareLogo.150x150.png" Square30x30Logo="SquareLogo.30x30.png" Description="MyApp.R" ForegroundText="light" BackgroundColor="#464646">
<m2:DefaultTile Square70x70Logo="SquareLogo.70x70.png" Square310x310Logo="SquareLogo.310x310.png" Wide310x150Logo="WideLogo.310x150.png" ShortName="MyApp.R" DefaultSize="square150x150Logo">
<m2:ShowNameOnTiles>
<m2:ShowOn Tile="square150x150Logo" />
</m2:ShowNameOnTiles>
</m2:DefaultTile>
<m2:SplashScreen Image="Assets\SplashScreen.620x300.png" />
</m2:VisualElements>
</Application>
</Applications>
<Capabilities>
<Capability Name="internetClient" />
</Capabilities>
</Package>
MyApp.R
joedev_000
资产\StoreLogo.50x50.png
6.3.0
6.3.0
如果有效,试试这个。。。为我工作
希望这有助于清单中的标识是重要的部分(在可视化清单编辑器中,这是“包名”)。更改标识足以安装两个版本。您还可以将标识更改为有意义的内容,而不是GUID 正如您所注意到的,VisualStudio将卸载它为您准备的旧版本,但您可以创建一个部署包,然后自己重新安装 当您准备切换到新基线时,请使用Project.Store.Create应用程序包。。。创建开发测试包的菜单(即不上传到商店) 更新您的清单以使用新标识。更改显示名称在技术上是不必要的,但会减少混乱 生成此文件将安装新版本并删除暂存版本 现在安装您创建的开发包:转到AppPackages文件夹,并为要重新安装的旧版本运行Add-AppDevPackage.ps1 您将得到一个正常部署(在Program Files\WindowsApps中)的旧版本开发包和一个暂存(在您的VS project目录中)的新版本开发包
(或者,您可以对版本进行洗牌以重命名旧版本以指示其为旧版本,为重命名的版本创建应用程序包,将标识重新重命名为原始版本,然后为旧重命名的版本安装开发包)。Ah。。这是我第一次这么做时遗漏的一步——复制整个解决方案以创建基线!这确实有效。不过,Rob Caplan的回答将允许我在不复制解决方案的情况下执行此操作,因此我将使用它。谢谢这种方法会破坏推送通知。是否存在允许推送通知工作的变通方法?推送通知与应用程序ID绑定,因此,如果您为开发中的应用程序使用单独的ID,那么您将需要为开发版本使用单独的推送通道。