大神求救,发布 和强签名问题

大师的进阶之路 2011-09-30 10:27:36
A项目引用B项目,B项目引用C项目编译的Dll,A项目也引用了C项目的DLL。
A和B项目在引用C项目Dll,都采取的是用不复制的模式。
结果 勾选了A项目属性->安全里的Enable clickonce security settings 后,编译不通过,提示是要让C项目的Dll 强签名。
但不勾选这个选项就能编译通过。
现在要用clickonce 发布版本,求救啊~~~
...全文
89 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
应该强命名的内容
应对共享 DLL 进行强命名。 如果某个 DLL 不是应用程序的私有实现详细信息,而是可由多个应用程序使用的常规服务,则无论该 DLL 是否将要部署到全局程序集缓存,都建议使用强名称。

必须强命名的内容
必须对以下各项进行强命名:

希望部署到全局程序集缓存 (GAC) 的 DLL。

ClickOnce 应用程序和部署清单。 默认情况下,Visual Studio 项目系统为 ClickOnce 部署的应用程序启用此项。

用于 COM 互操作性的主互操作程序集。 当从 COM 类型库创建主互操作程序集时,TLBIMP 实用工具强制进行强命名。

不应该强命名的内容
通常应避免对应用程序 EXE 程序集进行强命名。 强命名的应用程序或组件不能引用弱命名的组件。 因此,对 EXE 进行强命名会阻止此 EXE 引用使用应用程序部署的弱命名的 DLL。

因此,Visual Studio 项目系统不对应用程序 EXE 进行强命名, 而是对在内部指向弱名称应用程序 EXE 的应用程序清单进行强命名。

此外,您可能还希望避免对应用程序的私有组件进行强命名。 因为在这种情况下,强命名会使依赖项更加难以管理,并为私有组件增加不必要的系统开销。

为了使用 ClickOnce 部署发布应用程序,应用程序和部署清单必须使用公钥/私钥对进行强命名并使用 Authenticode 技术进行签名。 可以使用 Windows 证书存储区的证书或密钥文件对清单进行签名。

对 ClickOnce 清单进行签名对于基于 .exe 的应用程序是可选的。 有关更多信息,请参见本文档中的“生成未签名的清单”一节。

有关创建密钥文件的信息,请参见如何:创建公钥/私钥对。

http://msdn.microsoft.com/zh-cn/library/h4fa028b.aspx

http://msdn.microsoft.com/zh-cn/library/che5h906.aspx
hztltgg 2011-09-30
  • 打赏
  • 举报
回复
那就签名呗,又不要钱
  • 打赏
  • 举报
回复
为毛 没人理 .....
  • 打赏
  • 举报
回复
应该是求大神救~~~~

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧