Web应用程序项目中引用的dll不需要本地,但除非使用复制到本地,否则不会工作?

时间:2013-09-30 14:20:52

标签: c# asp.net dll

我有一个使用另一个项目(framework 4.0 C#)dll的框架4.5(C#)Web应用程序项目。使用installshield例程将4.0项目部署到目标服务器。所以在我的4.5项目中我添加了dll作为参考,但我真的不想使用那个DLL。我想在目标服务器上使用已安装的(我假设是GAC)(因此我可以根据需要更新4.0 dll项目)。但我的4.5网页应用程序不起作用,除非我使用“复制到本地”4.0 DLL参考???所以它就位于我的4.5网络应用程序的BIN文件夹中。

4.0项目DLL确实有一个TLB文件,但是当我尝试获取时,无法将其添加到我的4.5项目中

The "ActiveX type library ".." was not exported from a .NET assembly and cannot be added as a reference.

所以我通过浏览添加4.0 dll并选择4.0 dll。

浏览到dll与我在目标服务器上安装的开发机器上的位置相同并安装(4.0项目)。

2 个答案:

答案 0 :(得分:0)

我建议在自己的计算机上安装4.0 dll,就像安装在目标服务器上一样。然后你就不再需要引用它了。

答案 1 :(得分:0)

好吧,我查看了我的Installshield例程,但我没有将GAC设置为目标位置。因为我最初为一些非常老的技术开发了4.0 DLL,只需要COM和本地文件夹来保存。因此,我没有重做我的IS项目,而是移动了GAC util(及其文件),因为它们没有通过框架部署(即4.0)(为什么没有任何意义)。然后在GAC中注册了相同的DLL,然后我不需要(在VS2012中)将资源保存到本地。