VS 2010,赢服务器2003,NET 3.5的解决方案,这是从NET 1.1 migurated
在溶液中的所有项目都延迟签名。 该soluton可以成功地建立调试,但总是失败,释放与下面的错误。 SGEN:错误:无法加载文件或程序集“AssemblingX,版本= 1.0.5000.0文化=中性公钥= XXXXXXXX”或它的一个依赖。 强名称验证失败。 (从HRESULT异常:0x8013141A)
该AssemblingX是我要构建的项目。 本项目的所有引用的DLL文件都保存在本地文件夹,并已签署。 如果我改变项目AssemblingX的属性来签名,然后解决方案可以释放成功构建。
我遵循的指导上创建一个sgen.exe.config启用“loadFromRemoteSources” http://social.msdn.microsoft.com/Forums/nl-NL/msbuild/thread/695581ae-77e7-4c3a-bb3f-6472b8c47f65
但是什么都没有改变。 有任何想法吗?
谢谢
这个问题关系到强名称验证。 在程序Ildasm.exe打开AssemblyX(C:\ Program Files文件(x86)的\微软的SDK \的Windows \ v7.0A \ BIN)。 注意它的PublicKeyToken
,可以说pkt123
为例。 在管理员模式下现在打开VS命令提示符,然后运行命令SN.EXE。 如:
sn -Vr *,pkt123
再次构建解决方案,一切都应该由目前罚款。
但是,如果不和你现在收到同样的错误也,那么你需要运行不同版本的SN.EXE。 要查找,去到Visual Studio命令提示符。
c:\Program Files(x86)>dir /s sn.exe
这可能需要5-10秒钟,应该给的SN.EXE文件列表。 去的路径并执行SN.EXE,必需的或属于你的,如上所示。 如果不知道哪一个执行,执行所有的SN.EXE。 这应该和必须解决您的问题。 如果没有,让我知道,让我再次发扬RND。
因为我不能上唯一的答案发表评论我要这个,我想请确保临到这个答案像我一样没有犯同样的错误其他用户的其他可能。 根据MSDN文档的强命名实用程序,使用VR(签名跳跃)开关可以导致恶意组件加载,只应在开发不部署使用。
http://msdn.microsoft.com/en-us/library/k5b5tt23(v=vs.80).aspx
如果仍然没有解决你在键删除或设置AllowStrongNameBypass(DWORD)设置为“1”
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
在64位计算机,
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
和
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework
在我的情况的原因是本机库的建立是为了不同的文件夹,然后应用程序的其余部分。
打开CMD。
Cd "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin"
运行 :
sn –Vr **AssemblingX** name (without dll extension), **PublicKeyToken**
(代码)
重新生成解决方案。 它应该可以解决。
文章来源: SGEN : error : Could not load file or assembly (Exception from HRESULT: 0x8013141A)