2013-05-22 86 views
1

有一件奇怪的事情,當我使用創建應用程序包嚮導在IDE中構建應用程序包時,多語言是正確的。使用多語言應用程序工具包構建應用程序包

但是,如果我在命令行中使用msbuild.exe構建它,如:

msbuild.exe my.sln /t:rebuild /p:Configuration=Release;Platform=x86;Outdir=myoutput /flp:LogFile=my.log 

結果的應用程序包是錯誤的。它沒有多語言資源,只有默認的英文。

IDE wizard和msbuild.exe有什麼不同?我的命令行錯了嗎?

日誌是:

Target "AfterBuild" in project "myproject.csproj" (target "Build" depends on it): 
Using "MultilingualBuild" task from assembly "C:\Program Files (x86)\MSBuild\Microsoft\Multilingual App Toolkit\v1.0\Microsoft.Multilingual.Build.dll". 
Task "MultilingualBuild" 
    Multilingual App Toolkit build started. 
    Update build config xml started. 
    Preprocessing XLIFF file: 'MultilingualResources\Chinese (Simplified).xlf' 
    Preprocessing XLIFF file: 'MultilingualResources\Chinese (Traditional).xlf' 
    Preprocessing XLIFF file: 'MultilingualResources\Italian (Italy).xlf' 
    Preprocessing XLIFF file: 'MultilingualResources\Japanese (Japan).xlf' 
    Preprocessing XLIFF file: 'MultilingualResources\Russian (Russia).xlf' 
    Update build config xml completed. 
    Generate latest XLIFF build task started. 
    A translation unit with null or empty content was detected and ignored while generating the XLIFF file. 
    A translation unit with null or empty content was detected and ignored while generating the XLIFF file. 
    A translation unit with null or empty content was detected and ignored while generating the XLIFF file. 
    A translation unit with null or empty content was detected and ignored while generating the XLIFF file. 
    Latest XLIFF file generated: 'obj\x86\Release\MultilingualAppToolkitLatest.xlf' 
    Generate latest XLIFF build task completed. 
    Update XLIFF build started. 
    TargetLang ID: zh-Hans 
    TargetLang XLiff: MultilingualResources\Chinese (Simplified).xlf 
    XLIFF file updated: 'MultilingualResources\Chinese (Simplified).xlf' 
    TargetLang ID: zh-Hant 
    TargetLang XLiff: MultilingualResources\Chinese (Traditional).xlf 
    XLIFF file updated: 'MultilingualResources\Chinese (Traditional).xlf' 
    TargetLang ID: it-IT 
    TargetLang XLiff: MultilingualResources\Italian (Italy).xlf 
    XLIFF file updated: 'MultilingualResources\Italian (Italy).xlf' 
    TargetLang ID: ja-JP 
    TargetLang XLiff: MultilingualResources\Japanese (Japan).xlf 
    XLIFF file updated: 'MultilingualResources\Japanese (Japan).xlf' 
    TargetLang ID: ru-RU 
    TargetLang XLiff: MultilingualResources\Russian (Russia).xlf 
    XLIFF file updated: 'MultilingualResources\Russian (Russia).xlf' 
    Update XLIFF build completed. 
    Generate priInfo build started. 
    Adding language 'zh-Hans' from 'MultilingualResources\Chinese (Simplified).xlf' 
    Adding language 'zh-Hant' from 'MultilingualResources\Chinese (Traditional).xlf' 
    Adding language 'it-IT' from 'MultilingualResources\Italian (Italy).xlf' 
    Adding language 'ja-JP' from 'MultilingualResources\Japanese (Japan).xlf' 
    Adding language 'ru-RU' from 'MultilingualResources\Russian (Russia).xlf' 
    Generate priInfo build completed. 
    Merge of Loc PRI file started. 
    Copy App PRI file started. 
    Copy App PRI file completed. 
    C:\Program Files (x86)\Windows Kits\8.0\bin\x86\Makepri.exe resourcepack /o /pr "C:\hudsonprojects\myproject\sourcecode\myproject\myproject" /cf "obj\x86\Release\MultilingualAppToolkit.cfg.xml" /if "obj\x86\Release\MultilingualAppToolkit.pri" /of "../../../output/myproject/resources.pri" 
    Update Manifest File Started. 
    Update Manifest File added language id: 'zh-Hans' 
    Update Manifest File added language id: 'zh-Hant' 
    Update Manifest File added language id: 'it-IT' 
    Update Manifest File added language id: 'ja-JP' 
    Update Manifest File added language id: 'ru-RU' 
    Update Manifest File is saving the manifest changes. 
    Update Manifest File Completed. 
    Merge of Loc PRI file completed. 
    Multilingual App Toolkit build completed successfully. 
Done executing task "MultilingualBuild". 
Done building target "AfterBuild" in project "myproject.csproj". 

回答

0

有一點很難沒有更多的信息說,這可能是PlatformAnyCPU而不是x86,它只是取決於你的解決方案是如何配置的。

您是否嘗試過將MSBuild輸出冗長性進行更詳細的分析?

的Visual Studio:工具>選項>項目和解決方案>生成和運行> ...

命令行:/冗長:詳細

如果你不能看到的差異後嘗試這一點,或許用更詳細的日誌輸出來更新你的問題。

+0

謝謝。我嘗試其他平臺配置,但仍然錯誤。並附上日誌。我比較了IDE嚮導和msbuild的輸出,發現pri文件不同,我猜msbuild在創建pri文件時出了點問題。 – user2407701

+0

Visual Studio在封面下調用MSBuild,因此您應該能夠追蹤它。 – si618

1

嘗試使用T:/發佈,而不是:

msbuild.exe my.sln /t:publish /p:Configuration=Release;Platform=x86;Outdir=myoutput /flp:LogFile=my.log 

參見:http://social.msdn.microsoft.com/Forums/windowsapps/en-US/7522e6a3-1a74-42df-9414-bb93d745a0ca/why-msbuild-cannot-create-apppackage-

而且,雖然我沒有看到它的輸出日誌,確保擬被排除在創建包之前發佈。 Pseudo是爲本地化測試而創建的,它不會通過商店認證。

+0

只是一個額外的評論,因爲我發現這很難。 Pseudo本地化不僅不會通過商店認證,還會阻止默認以外的所有語言輸入'resources.pri',這似乎是OP正在看到的現象。 –

相關問題