Windows phone 8.1 在释放模式下部署到设备时,MdilXapCompile错误1004

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

我正在构建一个Windows Phone 8.1应用程序。对于视图中使用的本地化资源,它使用“new”
.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-相同错误。