2009-11-19 59 views
2

我有一个项目,我想强名称的可执行文件。使用命令行编译工作得好:强命名程序集不工作在我的Visual C#

CSC ... /密钥文件:...

但我想的IDE要做到这一点,所以我觉得这样的:在项目属性的'签名'选项卡上,有'签署程序集'选项。我打勾并直接输入我的密钥对文件。我劳克调试后,FileNotFound异常在冷漠的地方显示出来(我的应用程序使用的序列化)

 protected override Type d(Stream st) 
     { 
      BinaryFormatter bf = new BinaryFormatter(); 
      return (Type)bf.Deserialize(st); 
     } 

应用程序在做之前,我做这个configureation。

回答

2

我假设您正在读取使用未签名应用程序编写的数据。该数据现在变得不兼容,解串器无法匹配类型。

我不知道如何解决此问题(很快),但也许您可以通过使用已签名的应用程序进行书写和阅读来确认此问题,这应该可行。

将所有序列化类型保存在单独的程序集中是一个好主意。

+0

谢谢!而已。在决定使用强命名程序集之前,该文件已创建并使用。现在我已经比较了新的和旧的。他们显然不同。我甚至不知道强命名程序集使用的文件与普通文件不同。 – fwonce 2009-11-19 08:12:55

1

这两个反应都非常好。
添加我的1便士到它:这称为TYPE FIDELITY这是可能的只能通过二进制序列化,而不是XML或任何其他类型的序列化。

+0

谢谢!您的信息很有用。 – fwonce 2009-11-21 16:14:34

相关问题