Развертывание Azure без ссылки на dll - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть веб-API, который размещен в Azure, и у меня настроено непрерывное развертывание из репозитория 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 и смотрю код, я вижу свою dll в /bin/Debug/netcoreapp2.1/

Я попытался установить для CopyLocal значение True, но это ничего не исправило.Что-нибудь еще, что я могу сделать, чтобы исправить это?Это кажется довольно простой вещью.

1 Ответ

0 голосов
/ 21 сентября 2018

Проблема в том, что вы на самом деле ссылались на эту сборку (DLL) по относительному пути в зависимости от вашей локальной среды (часть пользовательской папки является подсказкой).Но если вы используете непрерывное развертывание, управляемое репозиторием git, все это должно быть доступно из репозитория git или процесса сборки.В среде сборки путь освобождения недоступен, поэтому на него нельзя ссылаться.

Решение:
1. Обращайтесь к вашей сборке как к пакету nuget и вызывайте nuget restore в процессе построения непрерывного слияния
- или -
2. Создатьсвоего рода папка lib в вашем проекте и поместите туда стороннюю сборку.Чем зафиксировать эту библиотеку как часть вашего проекта (ссылаться на нее относительно вашего проекта)

Надеюсь, это поможет ...

...