我有一个我正在部署到Azure的Web项目。它还有一个与之关联的webjob。它们都使用名为foo.dll的DLL,但webjob项目使用稍微较旧版本的foo.dll。 webjob项目采用完全不同的VS解决方案。
为了简化我的部署过程,我已将webjob bin文件添加到我的web项目的App_Data文件夹中,以便在部署webjob时也是如此。
所以我在以下位置有foo.dll:
然后我将对Dependencies文件夹中的foo.dll的引用添加到Web项目中。它构建正常,但是当我运行/调试它时,我在Dependencies / foo.dll版本中存在的方法上得到一个MissingMethodException,但在MyWebJob / foo.dll版本中不存在。
如何确保在我的应用中使用正确的dll?
答案 0 :(得分:0)
您能提供有关正在运行的.net框架版本的详细信息吗? 我会尝试以下的事情 1)检查azure实例是否运行与本地相同的.net版本 2)尝试清理,重建依赖的dll以清除任何陈旧的dll。
答案 1 :(得分:0)
好的,所以我使用DLL版本号解决了它并手动编辑csproj文件。最初,csproj中的引用看起来像这样:
<Reference Include="Foo">
<HintPath>Dependencies\Foo.dll</HintPath>
</Reference>
我开始在Foo.dll中递增程序集版本号,然后编辑我的csproj文件以包含所需的版本号和一行告诉它要使用特定版本:
<Reference Include="Foo, Version=1.0.0.1">
<SpecificVersion>True</SpecificVersion>
<HintPath>Dependencies\Foo.dll</HintPath>
</Reference>
现在,它将正确的DLL复制到bin文件夹。希望这会在某些时候帮助别人。