I had to change the default “Application Files” folder name for one of our clients who did not like spaces in file or folder names, and that meant re-signing xbap after publishing. Here's the msbuild script I use to automate the process:
<Target Name="PublishWebsite" DependsOnTargets="CleanWebsiteOutputPath;CleanOutputPath;CleanWebsiteReleasePath">
<MSBuild Projects=".\Some.Namespace.Web.Site\Some.Namespace.UI.Web.Site.csproj" Targets="Clean;Rebuild;" Properties="Configuration=Release" />
<ItemGroup>
<SiteFiles Include="Some.Namespace.UI.Web.Site/**/*.*" />
</ItemGroup>
<Copy SourceFiles="@(SiteFiles)" DestinationFolder="..\rel\Website\%(RecursiveDir)" />
<CallTarget Targets="CleanWebsiteAfterPublish" />
<Message Text="Website Published" />
<StringReplace Pattern="\." InputString="$(ApplicationVersion)" Replace="_">
<Output PropertyName="VersionUnderscored" TaskParameter="Result" />
</StringReplace>
<MSBuild Projects=".\Some.Namespace.UI.WPF\Some.Namespace.UI.WPF.csproj" Targets="Publish" Properties="Configuration=Release;" />
<Exec Command="move "..\bin\Release\app.publish\Application Files" "..\bin\Release\app.publish\ApplicationFiles"" />
<Exec Command="$(MageExe) -update ..\bin\Release\app.publish\SomeApp.xbap –AppManifest ..\bin\Release\app.publish\ApplicationFiles\SomeApp_$(VersionUnderscored)\SomeApp.exe.manifest -wpf true -cf ..\ext\Signing\SomeApp.pfx -pwd password" />
<ItemGroup>
<XbapPublishFiles Include="..\bin\Release\app.publish\**\*.*" />
</ItemGroup>
<Copy SourceFiles="@(XbapPublishFiles)" DestinationFiles="@(XbapPublishFiles->'..\rel\Website\%(RecursiveDir)%(Filename)%(Extension)')" />
<Message Text="XBAP Published" />
</Target>
source
share