2012-12-24 54 views
4

我目前移植现有的跨平台框架到Windows Phone 8。构建Windows 8 Phone应用程序的命令行

构建过程是完全自动的,我们使用的是坚如磐石的CI系统。

我可以从Visual Studio(Express 2012), 构建和部署Windows Phone 8示例,但现在我需要将它集成到我们的构建脚本中。

有没有人通过命令行成功构建(并部署)Win Phone 8应用程序? (或蚂蚁,制造,scons,不管...)

如果是的话,怎么样?

欢迎任何提示。

回答

6

我用下面的bat文件来构建WP7代码(在它上面加上+ ant自动化)。这可能对您有所帮助。

的build.bat

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe build.xml /t:BuildAndCopy /p:Revision=123 

其中的build.xml是一样的东西(自身建设BuildAll目标下进入)

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Import Project="C:\Program Files (x86)\MSBuild\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/> 
    <PropertyGroup> 
     <Major>1</Major> 
     <Minor>0</Minor> 
     <Build>0</Build> 
     <Revision>x</Revision> 
     <OutputPath>Build\</OutputPath> 
     <OutputPathDebug>..\Build\Debug\</OutputPathDebug> 
     <OutputPathRelease>..\Build\</OutputPathRelease> 
    </PropertyGroup> 
    <Target Name="BuildAll" DependsOnTargets="Clean; Version"> 
     <msbuild Projects="SomeApp.sln" Properties="Configuration=Release;OutputPath=$(OutputPathRelease)"/> 
     <msbuild Projects="SomeApp.sln" Properties="Configuration=Debug;OutputPath=$(OutputPathDebug)"/> 
    </Target> 
    <Target Name="Clean"> 
     <RemoveDir Directories="$(OutputPath)" Condition="Exists('$(OutputPath)')"/> 
     <MakeDir Directories="$(OutputPath)" Condition="!Exists('$(OutputPath)')"/> 
    </Target> 
    <Target Name="Version"> 
     <Message Text="Version: $(Major).$(Minor).$(Build).$(Revision)"/> 
     <XmlUpdate 
       Namespace="" 
       XmlFileName="WindowsPhone\Properties\WMAppManifest.xml" 
       XPath="//App[@Version]//@Version" 
       Value="$(Major).$(Minor).$(Build).$(Revision)"/> 
    </Target> 

    <ItemGroup> 
     <AppFiles Include="$(OutputPath)\**\*.xap"/> 
    </ItemGroup> 

    <Target Name="BuildAndCopy" DependsOnTargets="BuildAll"> 
     <Copy 
       SourceFiles="@(AppFiles)" 
       DestinationFiles="@(AppFiles->'\\fs\Public\projects\mobile\SomeAppWP\$(Major).$(Minor).$(Build).$(Revision)\%(RecursiveDir)%(Filename)%(Extension)')" 
       /> 
     <Copy 
       SourceFiles="@(AppFiles)" 
       DestinationFiles="@(AppFiles->'\\fs\Public\projects\mobile\SomeAppWP\latest\%(RecursiveDir)%(Filename)%(Extension)')" 
       /> 
    </Target> 


</Project> 
+0

谢谢, 这仍是使用Visual Studio(又名的MSBuild)系统建设项目, 但它显示颁发,所有的(子)命令,包括完整的命令行,这非常有用。 会看到它给我多远。 – Andreas

1

感谢谢尔盖的MSBuild.exe暗示我能通过命令行构建一个简单的示例。

https://github.com/AndreasOM/wp8-directx-commandline

有包括一个运行build.bat,这应该足以让你开始与您所选择的构建系统建立“的Windows Phone 8”。

这是相当hacky, 但一旦我得到当前的项目完成 我会清理它。

提示: 用 “CL.EXE” 工作时决不限定 “CL” 环境变量;)

+1

你把它清理干净了吗? –

+0

我不再做WP8开发,不再有Windows系统,所以我很抱歉,但我无法再测试这个:( – Andreas

4

它应该是容易的。我假设你有如下的文件结构

$/WP8App/SampleApp.sln

你将不得不在项目中使用的路径和解决方案文件。请执行下列步骤,并确保更新解决方案文件和路径:

  • 打开命令提示符
  • 执行:%VS110COMNTOOLS%vsvars32.bat
  • 执行:%VS110COMNTOOLS%..\..\VC\WPSDK\WP80\vcvarsphoneall.bat
  • 执行:MSBuild "WP8App/SampleApp.sln" /t:rebuild /p:Configuration=Release /p:Platform="Any CPU" /v:d

请通知:

  • 您要运行这些命令的计算机应该已经设置了WP8的开发环境。
  • 如果应用程序使用本机库
  • 我用的VS2012 Pro和VS2012 Premium和詹金斯这个过程生成服务器(其安装到VS如PlayerFramework http://playerframework.codeplex.com/,这些库也应在运行命令之前安装) 。

祝你好运, 香草

相关问题