我有一个正在部署到Azure的Web项目。它也有一个与之相关的webjob。他们都使用了一个名为foo.dll的DLL,但是webjob项目使用了稍微旧版本的foo.dll。网络作业项目是一个完全不同的VS解决方案。VisualStudio - 如何指定用作参考的dll的路径
为了简化我的部署过程,我已经将webjob bin文件添加到我的web项目的App_Data文件夹中,以便在部署webjob时也是如此。
所以我必须在以下位置foo.dll:
- MySolution/MyWebProject /依赖/ foo.dll
- MySolution/MyWebProject/App_Data文件/工作/触发/ MyWebJob/foo.dll
然后,我将“Dependencies”文件夹中foo.dll的引用添加到Web项目中。它构建的很好,但是当我运行/调试它时,我在Dependencies/foo.dll版本中存在的方法上收到MissingMethodException,但MyWebJob/foo.dll版本中不存在该方法。
如何确保在我的应用程序中使用正确的dll?
.NET 4.6。我已经尝试了一次彻底的清理和重建。我尝试删除所有引用,从Dependencies文件夹中删除dll,执行clean,然后添加dll,引用它们,然后构建。它构建得很好,但运行时抛出MissingMethodException。如果我删除了webjob文件夹,它可以很好地工作。它发生在本地和Azure上。经过进一步调查,VS或msbuild正在将错误的dll复制到bin文件夹 - 但是当我删除webjob文件夹时,它会复制正确的文件夹。 – littlecharva