VisualStudio - 如何指定用作引用的dll的路径

时间:2016-02-19 17:11:44

标签: .net visual-studio dll

我有一个我正在部署到Azure的Web项目。它还有一个与之关联的webjob。它们都使用名为foo.dll的DLL,但webjob项目使用稍微较旧版本的foo.dll。 webjob项目采用完全不同的VS解决方案。

为了简化我的部署过程,我已将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?

2 个答案:

答案 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文件夹。希望这会在某些时候帮助别人。