我编写了我们公司内部使用的程序。我创建了几个我在许多项目中引用的支持DLL。 (例如,通用数据访问助手) 而不是在每个程序目录中都有“datatools.dll”的副本(似乎是默认行为),我希望有一个可以被许多程序引用的副本。有点像我自己的system32目录。
我在项目中添加了“参考路径”。我编译项目然后编译部署项目。安装程序工作正常。共享dll位于我的参考路径中。 但是当我运行程序时,我得到了错误 “System.IO.FileNotFoundException:无法加载文件或程序集'datatools.dll,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一。系统找不到指定的文件。” 如果我将datatools.dll移动到与exe相同的文件夹中,程序运行时没有问题。
我可以为共享dll创建和使用共享位置吗? 或者这只是一个坏主意?
答案 0 :(得分:3)
您可以签名(使用VS2k8,查看项目属性标签)并将它们放入GAC
答案 1 :(得分:2)
如果您使用的是.NET,此类问题的典型方法是将这些共享程序集部署到GAC(全局程序集缓存),最好是作为自己的部署项目。
答案 2 :(得分:1)
听起来你有一个多项目解决方案。检查以确保引用DataTools.dll程序集的所有项目都指向正确的(新)位置。
根据您的IDE,您可能需要尝试一些时髦的功能,例如删除旧引用,构建它(并观察它崩溃),然后从新位置重新添加它。