4

現在、既存のクロス プラットフォーム フレームワークを Windows Phone 8 に移植しています。

ビルド プロセスは完全に自動化されており、堅牢な CI システムを使用しています。

Visual Studio (Express 2012) から Windows Phone 8 のサンプルをビルドしてデプロイできますが、今度はそれをビルド スクリプトに統合する必要があります。

コマンドライン経由で Wi​​n Phone 8 アプリのビルド (およびデプロイ) に成功した人はいますか? (またはアリ、メイク、スコン、何でも...)

はいの場合、どのように?

どんなヒントでも大歓迎です。

4

3 に答える 3

6

次のbatファイルを使用してWP7コードをビルドしました(+その上に自動化)。それはあなたに役立つかもしれません。

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>
于 2012-12-24T11:59:16.450 に答える
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

注意してください:

がんばれ、ハーブ

于 2014-03-11T02:52:13.907 に答える
1

Sergei の MSBuild.exe ヒントのおかげで、コマンド ラインから簡単なサンプルをビルドできました。

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

build.bat が含まれています。これで、選択したビルド システムで「windows phone 8」のビルドを開始できます。

現時点ではかなりハックですが、現在のプロジェクトが完了したら、クリーンアップします。

ヒント: "CL.exe" を使用する場合は、"CL" 環境変数を定義しないでください ;)

于 2013-01-04T10:09:37.803 に答える