2009-10-29 99 views

回答

0

我必须为不喜欢文件或文件夹名称空间的客户更改默认“应用程序文件”文件夹的名称,这意味着在发布后重新签署xbap。这里是我用来自动化过程的msbuild脚本:

<Target Name="PublishWebsite" DependsOnTargets="CleanWebsiteOutputPath;CleanOutputPath;CleanWebsiteReleasePath"> 

    <!-- Compile Website --> 
    <MSBuild Projects=".\Some.Namespace.Web.Site\Some.Namespace.UI.Web.Site.csproj" Targets="Clean;Rebuild;" Properties="Configuration=Release" /> 

    <!-- Copy Website files to release folder --> 
    <ItemGroup> 
     <SiteFiles Include="Some.Namespace.UI.Web.Site/**/*.*" /> 
    </ItemGroup> 
    <Copy SourceFiles="@(SiteFiles)" DestinationFolder="..\rel\Website\%(RecursiveDir)" /> 

    <!-- Remove source code and source control files from website --> 
    <CallTarget Targets="CleanWebsiteAfterPublish" /> 
    <Message Text="Website Published" /> 

    <!-- Rename "Application Files" folder and re-sign the xbap --> 
    <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 &quot;..\bin\Release\app.publish\Application Files&quot; &quot;..\bin\Release\app.publish\ApplicationFiles&quot;" /> 
    <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" /> 

    <!-- Move published files to Release directory --> 
    <ItemGroup> 
     <XbapPublishFiles Include="..\bin\Release\app.publish\**\*.*" /> 
    </ItemGroup> 
    <Copy SourceFiles="@(XbapPublishFiles)" DestinationFiles="@(XbapPublishFiles->'..\rel\Website\%(RecursiveDir)%(Filename)%(Extension)')" /> 
    <Message Text="XBAP Published" /> 
</Target>