2014-11-10 6 views
7

Я развертываю WebJob для Azure с помощью Visual Studio, но ни один из подкаталогов в выходной папке сборки проекта не копируется в Azure (как показано в папке FTP и в силу приложение не выполняется правильно). Есть ли способ заставить развертывание копировать все файлы и папки?Развертывание подпапок для Azure WebJob

Дополнительная информация: подкаталоги взяты из проекта, на который ссылаются, и файлы имеют «Копировать всегда». Они появляются в каталоге вывода сборки проекта WebJob

UPDATE: Таким образом, кажется, что в какой-то момент это было зафиксировано и теперь работает, как ожидалось

+1

Обходным способом является создание этих каталогов через FTP. Но, я считаю, что у вас нет доступа на запись к каталогам в AWS, отличном от корневого каталога, поэтому, если вы хотите писать в эти каталоги, вы не сможете этого сделать. – lopezbertoni

ответ

3

Спасибо за сообщение этого. Это похоже на ошибку в оснастке. Я подал ошибку.

+0

Спасибо за подачу ошибки; есть ли способ обойти это сейчас? – flipchart

+0

Пойдите с тем, что @lopezbertoni сказал: FTP. Я думаю, у вас должны быть разрешения на создание дополнительных папок. К сожалению, на данный момент нет простого решения. Если это не сработает, дайте мне знать, и я спрошу некоторых людей здесь. –

+0

У нас есть ссылка на ошибку, чтобы мы могли отслеживать прогресс? –

3

я взломал вместе автоматизированное развертывание, что, кажется, работают до сих пор:

Добавьте свой проект WebJob как зависимость сборки на свой веб-сайт проекта

развернуть мой WebJob к автономному Azure Веб-сайт, поэтому сайт напрямую не ссылался на проект. Я не хочу, чтобы вывод сборки проекта WebJob включался в корзину веб-сайта, а также правильный путь app_data. Если вас не беспокоит совместимость с MSBuild, вы можете установить зависимость сборки с помощью Visual Studio. Или вы можете редактировать проект веб-сайта и добавить ссылку с другими <Reference> теги:

<ProjectReference Include="..\PathToJobs\Jobs.csproj"> 
    <ReferenceOutputAssembly>false</ReferenceOutputAssembly> 
</ProjectReference> 

На PostBuild, скопируйте вывод WebJob бен в волшебную папку App_Data

WebJobs, как ожидается, будет в app_data\jobs\[type]\[name] , поэтому мы копируем WebJob бен к этой папке в проекте на сайте:

set webjob_dist_path=$(ProjectDir)app_data\jobs\continuous\Job 
IF EXIST "%webjob_dist_path%" (
    RMDIR "%webjob_dist_path" /S /Q 
) 
XCOPY "$(SolutionDir)Jobs\bin\$(ConfigurationName)\*" "%webjob_dist_path" /Q /E /I /Y 

Расскажите сайт, чтобы включить волшебную папку WebJob когда развертывает

(см: How do you include additional files using VS2010 web deployment packages?)

<PropertyGroup> 
    <CopyAllFilesToSingleFolderForPackageDependsOn> 
    CustomCollectFiles; 
    $(CopyAllFilesToSingleFolderForPackageDependsOn); 
    </CopyAllFilesToSingleFolderForPackageDependsOn> 
    <CopyAllFilesToSingleFolderForMsdeployDependsOn> 
    CustomCollectFiles; 
    $(CopyAllFilesToSingleFolderForPackageDependsOn); 
    </CopyAllFilesToSingleFolderForMsdeployDependsOn> 
</PropertyGroup> 
<Target Name="CustomCollectFiles"> 
    <ItemGroup> 
    <_CustomFiles Include="app_data\jobs\**\*" /> 
    <FilesForPackagingFromProject Include="%(_CustomFiles.Identity)"> 
     <DestinationRelativePath>%(RelativeDir)%(Filename)%(Extension)</DestinationRelativePath> 
    </FilesForPackagingFromProject> 
    </ItemGroup> 
</Target> 

Deploy сайт, используя нормальный Azure Публикация профилей. Готово!

Смежные вопросы