我正在开发一个Windows应用商店应用,我喜欢在开发下一个时保持最新的基线安装。
问题在于,每当我在Visual Studio 2013中运行当前的开发版本(使用F5)时,它都会卸载最近的基线。
我通过手动编辑Package.appxmanifest
创建并安装基线,如下所示:
.R
附加到应用名称的每个实例(例如MyApp
至MyApp.R
)(下面的完整文件列表)
我认为这应该足够了,但是在我徒劳无功的尝试中,我还在项目属性中将.R
附加到程序集名称,例如。 MyApp.R
,并更改了MyApp_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>
答案 0 :(得分:1)
尝试这个,如果它有效......为我工作
运行基准应用程序
创建一个新的工作文件夹(如果您使用像TFS这样的代码存储库,则创建分支)
例如: VS 2013 - &gt;项目 - &gt;应用1 然后创建 VS 2013 - &gt;项目 - &gt; App 1-Copy
一些独特之处,例如更改最后几位数字(区分两个应用程序,您可以更改“应用程序”选项卡下的显示名称和“打包”选项卡下的包显示名称)
并运行新的应用程序
这将列出您的基线和开发版本
希望这有帮助
答案 1 :(得分:1)
清单中的识别是重要的部分(在视觉清单编辑器中,这是“包名称”)。更改标识足以允许安装两个版本。您还可以将标识更改为有意义的内容而不是GUID。
正如您所知,Visual Studio将卸载它为您暂存的旧版本,但您可以创建一个部署包并自行重新安装。
当您准备切换到新基线时,请使用Project.Store.Create App Packages ...菜单创建开发测试包(即不上传到商店)。
更新您的清单以使用新标识。更改显示名称在技术上并不是必需的,但会减少混乱。
构建它将安装新版本并删除暂存版本。
现在安装您创建的开发包:转到AppPackages文件夹并为要重新安装的旧版本运行Add-AppDevPackage.ps1。
最终将使用旧版本的正常部署(在Program Files \ WindowsApps中)开发人员包和新版本的暂存(在VS项目目录中)。
(或者,您可以随机播放版本以重命名旧版本以表明它已旧,为重命名的版本创建应用程序包,将Identity重新重命名为原始版本,然后为旧版本安装dev-package重命名版本。)