嘿,我想知道你们是否能看到什么是错误的/建议一个解决方案。
我有一个用 C# 构建的 COM 的 dll 程序集,我正在尝试从 Silverlight Out-of-browser 获取 COM 对象。我希望 siverlight 应用程序可以在计算机之间移动,因此我将所有必需的文件与一个批处理安装程序一起放在一个 zip 中,该批处理安装程序执行以下操作来注册程序集:
cd %windir%\Microsoft.NET\Framework\v4.0.30319\ RegAsm.exe "%USERPROFILE%\My Documents\Homework Clock\windowsHook.dll" /tlb /nologo
我的应用程序找到了程序集,它在我的开发计算机上运行良好,但是当我将我的应用程序移动到测试计算机(连同 dll 和任何其他必要的文件)时,我的批处理文件说它注册成功但应用程序没有找到它。
但是,当我在测试计算机上使用 C# 重建程序集并用重建的 dll 替换我从开发计算机移动的 dll 时,应用程序发现它很好。如果他们希望使用我的应用程序时不必使用 C# 重建程序集,这对我的客户来说会很方便,所以我想知道是否有办法解决这个问题。
我研究了这个问题一段时间,并认为这可能是因为我的程序集不是一个强命名程序集,因为我认为 C# 会自动执行此操作,所以我尝试在我的批处理文件中执行此操作,但它无法识别 'al ' 和 'sn' 命令生成加密密钥以赋予程序集一个强名称,我尝试在 C# 项目属性的“签名”选项卡中执行此操作,但我遇到了同样的问题。任何想法如何解决这一问题?
提前致谢