Windows phone 8.1 在释放模式下部署到设备时,MdilXapCompile错误1004
我正在构建一个Windows Phone 8.1应用程序。对于视图中使用的本地化资源,它使用“new”Windows phone 8.1 在释放模式下部署到设备时,MdilXapCompile错误1004,windows-phone-8.1,portable-class-library,Windows Phone 8.1,Portable Class Library,我正在构建一个Windows Phone 8.1应用程序。对于视图中使用的本地化资源,它使用“new”.resw文件 出于几个原因,我在一个可移植类库中构建了应用程序的视图模型。这些视图模型还使用了一些可本地化的文本,我将这些文本放在同一个项目中的.resx文件中。起初,一切似乎都运转良好 今天,我注意到我无法在发布模式下将我的应用程序部署到物理设备上,我已经确定是resx文件造成了这种情况。Visual Studio在我尝试部署时出现以下错误: DEP6810:MdilXapCompile.e
.resw
文件
出于几个原因,我在一个可移植类库中构建了应用程序的视图模型。这些视图模型还使用了一些可本地化的文本,我将这些文本放在同一个项目中的.resx
文件中。起初,一切似乎都运转良好
今天,我注意到我无法在发布模式下将我的应用程序部署到物理设备上,我已经确定是resx文件造成了这种情况。Visual Studio在我尝试部署时出现以下错误:
DEP6810:MdilXapCompile.exe失败,错误代码为1004。请参阅日志文件
'C:\MySolution\MyPCLProject\obj\Release\MDIL\mdilxappcompilelog.txt'
更多细节
在日志文件本身中:
错误:编译筛选器参数指定的文件不存在:
C:\MySolution\MyPCLProject\obj\Release\MSIL\en\MyPCLProject.resources.dll
无效参数
Microsoft(R)MDIL XAP编译器-版本4.0.0.0版权所有(c)
微软公司。版权所有
用法:mdilxappcompile/In:/Out:
/配置:[/CompileFilter:;]
[/Timeout:][/Log:][/AppX]
什么有效
- 在调试和发布版本中编译
- 在调试和发布版本中部署到WP emulator
- 运行已部署的软件
我已经创建了一个(.zip 41 kB)来重现错误。应用程序在文本块中显示PCL中的唯一资源,以确认资源已嵌入。看起来它与部署到WP81时PCL中的本地化问题有关,该问题尚未解决 阅读更多:
我在尝试部署物理设备时遇到了类似的问题,无论它是设置为调试还是发布。 其中一个变通方法是按照上的说明操作,但这对我来说并不奏效,所以我发明了自己的变通方法 事实证明,如果.resx文件仅包含字符串值,则可以轻松地将其转换为.resw(本机Windows Phone 8.1资源格式)。 我已经开发了一个从PCL复制.resx并将它们作为.resw文件自动放置在Windows Phone 8.1项目中的程序。然后您可以通过以下代码访问它们:
var resourceLoader = new ResourceLoader();
var localizedText = resourceLoader.GetString("MyCustomReswFile/MyStringId");
再看看这个问题
为了实现良好的绑定,我最终创建了ValueConventer和小型本地化助手类,请看以下要点:
使用该选项,您可以在xaml页面中执行以下操作:
//For resource in file Page.Login.resw and string ID "NotUserYet"
<TextBlock Text="{Binding ConverterParameter=Page.Login/NotUserYet, Converter={StaticResource ResString}, Mode=OneWay, Source={StaticResource ResString}}"/>
//用于文件Page.Login.resw和字符串ID“NotUserYet”中的资源
或
string localizedtext=LocalizationHelper.GetString(“MyCustomReswFile”、“MyStringId”)代码>有完全相同的问题。WinRT(8.1 x64)和Android(Xamarin.Forms)都能很好地工作,但最近部署到WP 8.1会带来这些问题。我正在使用Windows应用程序本地化工具包.Microsoft.Data.Edb、Microsoft.OData和System.Spatial-相同错误。