2017-02-01 25 views
4

С помощью последнего Azure SDK я получил инструменты Azure Function для Visual Studio Чтобы я мог отлаживать свою функцию Azure в помещениях - круто.Как добавить ссылку на проект Azure Function C#?

Моя лазурь функция должна использовать код бизнес-объекта DLL

Из .csx сценария я могу сделать ссылку на .dll с такой директивой в начале

#r "ServiceBusQueue.Shared.dll" 

Там нет «Добавить ссылку ...» в проект функции Azure. Я могу добавить только зависимость Build, чтобы сначала создавалась dll бизнес-объекта.

Но когда обновляется код dll, копирование вывода dll в корзину моей директории функций Azzure отсутствует. Публиковать в Интернете нормально Это необходимо для того, чтобы последний код бизнес-объекта использовался в локальной сессии отладки.

Потому что нет вкладки для событий Prebuild в Azure функции проекта, решение, которое я нашел, чтобы написать в функции с Prebuild event проекта App

.funproj файл

<Target Name="BeforeBuild"> 
    <Message Text="Copying dlls into Azure Function ..." /> 
    <Exec Command="Call CopyDlls.cmd $(Configuration)" /> 
</Target> 

Пакетный файл:

rem %1 is the configuration, debug or release 
echo %1 
mkdir .\ServiceBusQueueTriggerCSharp\bin 
copy ..\ServiceBusQueue.Shared\bin\%1\*.* .\ServiceBusQueueTriggerCSharp\bin 
rem DOS subtlety : test than return code is equal or greater than 1 
rem : make the compilation to fail 
if errorlevel 1 exit /b 1 

Таким образом, dll копируется в каталог bin проекта Azure Function.

Есть ли более интегрированный/чистый способ сделать такое?

ответ

7

К сожалению, наилучшим обходным путем для этого является, как вы обнаружили, использование целевой MSBuild в файле funproj.

В качестве альтернативы вы можете добавить шаг после сборки в свою библиотеку классов. Перейдите к Свойства -> События сборки -> Командная строка события после сборки и добавьте что-то вроде xcopy /Y $(TargetPath) $(SolutionDir)FunctionApp1\bin.

Однако команда разработчиков VS работает над добавлением ссылочной функциональности для будущей версии инструментария функций. См. https://github.com/Azure/Azure-Functions/issues/90.

+0

Спасибо за поддержку. Ожидание добавляет ссылочную функциональность с нетерпением –

+1

@EmmanuelDURIN Я отредактировал пост Мэтта с немного более простым обходным решением. Если сообщение помогло вам, пожалуйста, примите это как ответ :) –