Azure部署不包括DLL参考

时间:2018-09-21 16:48:08

标签: azure asp.net-core asp.net-core-webapi

我有一个托管在Azure中的Web API,并且已经从GitHub存储库进行了连续部署。

我需要实现一些依赖于第三方DLL的功能,因此我将其添加为对我的项目的引用。本地一切正常,但是当我使用新的DLL提交更改时,在Azure中部署失败并显示以下消息:

  

错误CS0246:找不到类型或名称空间名称'MyReference'(您是否缺少using指令或程序集引用?)

如果我打开.csproj文件,这就是添加引用的方式,那么可能存在问题:

<ItemGroup>
  <Reference Include="MyReference">
    <HintPath>..\..\..\..\..\..\Users\MyUser\Downloads\library-sdk-csharp\lib\MyReference.dll</HintPath>
  </Reference>
</ItemGroup>

如果我去GitHub并查看代码,则可以在/bin/Debug/netcoreapp2.1 /

中看到我的dll。

我尝试将CopyLocal设置为True,但这并不能解决任何问题。我还能做些什么来解决这个问题?这似乎很简单。

1 个答案:

答案 0 :(得分:1)

问题是,您实际上是根据本地环境通过相对路径引用了该程序集(DLL)(“用户文件夹”部分是一个提示)。但是,如果您使用由git repo触发的连续部署,则所有内容都必须可从git repo或构建过程中引用。在构建环境中,相对路径不可用,这就是为什么无法引用它的原因。

解决方案:
1.将程序集作为nuget程序包引用,并在连续整数生成过程中调用nuget restore
-或-
2.在项目中创建一种lib文件夹,然后将第三方程序集放置在该文件夹中。比将这个库作为项目的一部分提交(相对于您的项目在此引用)

希望这对您有帮助...