Bla*_*lan 13 localization resx visual-studio-2010 visual-studio winforms
我有一个非常简单的形式,我想要本地化(我实际上在这个项目中有很多,他们都有相同的问题).当我将form属性设置Localizable为true时,Visual Studio会生成一个.resx带有表单名称的文件(正如您所期望的那样).问题是,它正在向.resx文件添加各种其他东西无法打开的东西(例如WinRes,ResEx,Simple Resx Editor,RESX Editor等).
我得到的错误是:
ResX文件类型System.Drawing.Point,System.Drawing,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a第125行的数据,位置4无法定位.第127行,第5位无法解析.
第124到127行是:
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="lblUsername.Location" type="System.Drawing.Point, System.Drawing">
<value>26, 24</value>
</data>
Run Code Online (Sandbox Code Playgroud)
现在我假设Visual Studio正在添加这个,以便我可以根据语言移动按钮等(我不需要或想要这种能力).然而,它抛出在每一个编辑器上面的错误其他比Visual Studio中.
我安装的唯一扩展(根据Extension Manager)是:
加载项管理器不显示加载项.
编辑:
在挖掘并手动编辑.resx文件之后,问题实际上是第124行<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />专门用于Version=4.0.0.0.
如果我将其设置为Version=2.0.0.0然后在Visual Studio和所有外部程序中都可以正常工作.但问题是,如果我在Visual Studio中编辑任何内容,它会将其重置为Version=4.0.0.0.
目前,我将目标框架设置为.NET Framework 3.5 Client Profile,以便Visual Studio不会覆盖该版本.这是一种解决方法,意味着我无法使用.NET 4.0功能.
我是否正确地猜测.NET Framework中存在错误,或者每个单独的.resx编辑器(包括Microsoft)都存在错误.
编辑2: 事实证明,当我尝试使用Microsoft的WinRes.exe工具时,我实际上是启动.NET Framework 3.5版本,因为.NET Framework 4.0版本没有安装.
我必须从http://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/winsdk_web.exe安装.NET Framework 4.0 SDK,然后我就可以编辑WinRes.exe 4.0的.resx文件
Visual Studio创建正确的*.resx文件.问题是,您尝试使用的工具是为规范的早期版本创建的.这就是你的解决方法有效的原因.
请检查您使用的本地化工具是否没有更新的版本或补丁.
有时在特定情况下,Windows在使用*.resx文件验证表单时会形成设计器崩溃.
控制DataSource附加的位置会受此行为的影响.在我的例子中,我得到了一些DataSet作为网格的数据源,组合......
所以我打开了设计师并没有告诉我由于名为blabla的控件出现问题而无法打开
在检查设计器文件之后,我发现控件没有任何问题,它只是指向错误源的*.resx文件,因为我重构了DataSet.因此,由于此重构,*.resx尚未更新.
我打开了*.resx文件,只是搜索控件的标识符,找到了Base64编码的代码.删除块内的值而不删除环绕标记将解决此控件的问题,因为Windows窗体设计器将自动刷新并将缺少的内容读取到*.resx文件.
| 归档时间: |
|
| 查看次数: |
26152 次 |
| 最近记录: |