2013-05-22 50 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正在看到的现象。 –

相关问题