我有一个在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 回答
问题是,您实际上是通过相对路径引用此程序集(DLL),具体取决于您的本地环境(用户文件夹部分是一个提示) . 但是如果你使用git repo的连续部署,所有的东西都必须可以从git repo或构建过程中引用 . 在构建环境中,相关路径不可用,这就是它无法被引用的原因 .
Solution:
1.将程序集引用为nuget包,并在连续的整合构建过程中调用
nuget restore
2.在项目中创建一种
lib
文件夹,并将第三方程序集放在那里 . 然后将此库作为项目的一部分提交(相对于您的项目引用它)希望这可以帮助...