2012-12-24 52 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/,這些庫也應在運行命令之前安裝) 。

祝你好運, 香草

相關問題