Sen*_*ent 6 msbuild resx visual-studio-2010 windows-7-x64
这是一个我最近遇到的故事和一个可能的答案(?)我只是想分享这些信息,因为我还没有在stackoverflow找到它.
我将我的解决方案从VS2008,WinXP,32位TO VS2010,Win7,64位升级.
当我在WinForms上修改生成新的RESX文件或更新RESX文件时,我遇到了问题.
使用VS2010的Debug构建没有问题.但是对于Release模式,我必须使用延迟签名过程.现在,该过程会对使用VS2010生成的新 RESX文件产生错误.(再次注意旧的RESX文件不显示此行为)
(CoreResGen目标)Search.resx(176,5):错误RG0000:无法加载文件或程序集xxx.Controls,Version = 1.5 0,Culture = neutral,PublicKeyToken = 7acfcc7eabace048'或其依赖项之一.强名称验证失败.(从HRESULT开始:0x8013141A)第176行,第5位.
以下是我在网上找到的一些信息
我想知道其他人是否遇到了这个以及他们遵循的解决方法?没有解决方法,等待VS2010 SP1问世.
不幸的是,我正在使用可能编译为32位的第三方程序集.(我无法控制他们的构建过程)
- 8/11/2010一些其他信息.
控件本身未签名或延迟签名.但是控件正在使用延迟签名的程序集中的组件.两个组件都在同一个解决方案中.
当我更改消耗程序集以定位4.0框架时,问题得以解决.当我定位3.5框架时,我们得到了错误.
我们遇到的问题也出在ImageList*.resx 文件内部(在代码中打开,而不是在设计器中打开):
<data name="imageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
[bunch of binary data here]
</value>
</data>
Run Code Online (Sandbox Code Playgroud)
我们通过仅删除<data />与(见上文)相关的标签ImageList,然后删除控件设计器中的引用来确认这一点:
//initialize
this.imageListSuperHeroes = new System.Windows.Forms.ImageList(this.components);
//control that references the ImageList
this.btnAwesome.ImageKey = "superman.gif";
this.btnAwesome.ImageList = this.imageListSuperHeroes;
Run Code Online (Sandbox Code Playgroud)
从“项目资源文件”而不是“本地资源”添加控件的图像引用(使用单个图像!),并更新从表单中删除的引用。
this.btnAwesome.Image = global::PMPPlus.Properties.Resources.Superman;
Run Code Online (Sandbox Code Playgroud)
这为我们解决了这个问题,希望这有助于您朝着正确的方向前进。如果没有,请仔细研究 *.resx,看看是哪一个问题<data />把你搞砸了。
他们提出了一些不符合我们需求的解决方法:
我们的设置
| 归档时间: |
|
| 查看次数: |
6699 次 |
| 最近记录: |