2014-11-10 24 views
7

Ich stelle einen WebJob für Azure mit Visual Studio bereit, aber keines der Unterverzeichnisse im Build - Ausgabeordner des Projekts wird nach Azure kopiert (wie im FTP - Ordner und mithilfe der App wird nicht korrekt ausgeführt. Gibt es eine Möglichkeit, die Bereitstellung zu veranlassen, alle Dateien und Ordner zu kopieren?Bereitstellen von Unterordnern für Azure WebJob

Weitere Informationen: die Unterverzeichnisse stammen aus einem referenzierten Projekt und die Dateien haben "Copy Always" festgelegt. Sie erscheinen in der Ausgabe Build-Verzeichnis des WebJob Projekt

UPDATE: So scheint es, dass irgendwann diese fixiert wurde und nun wie erwartet funktioniert

+1

Eine Problemumgehung besteht darin, diese Verzeichnisse über FTP zu erstellen. Aber ich glaube, dass Sie keinen Schreibzugriff auf Verzeichnisse in einem anderen AWS als dem Stammverzeichnis haben. Wenn Sie also in diese Verzeichnisse schreiben möchten, können Sie dies nicht tun. – lopezbertoni

Antwort

3

Danke für die Meldung. Es sieht wie ein Fehler in den Werkzeugen aus. Ich habe einen Fehler dafür eingereicht.

+0

Danke für die Einreichung des Fehlers; Gibt es einen Weg, um es für jetzt zu umgehen? – flipchart

+0

Geh mit was @lopezbertoni sagte: FTP. Ich denke, du solltest die Erlaubnis haben, dort zusätzliche Ordner zu erstellen. Entschuldigung, keine einfache Problemumgehung für jetzt. Wenn das nicht funktioniert, lass es mich wissen und ich werde einige Leute hier fragen. –

+0

Haben wir einen Link zu dem Fehler, damit wir den Fortschritt verfolgen können? –

3

ich gehackt zusammen einen Einsatz automatisiert, die bisher geleistete Arbeit zu sein scheint:

Fügen Sie Ihr WebJob Projekt als Build-Abhängigkeit auf Ihre Website-Projekt

ich meine WebJob auf einem eigenständigen Azure Webseite bereitstellen, Die Website bezog sich also nicht direkt auf das Projekt. Ich möchte nicht die Build-Ausgabe des WebJob-Projekts, das in der Bin der Website enthalten ist, sondern nur den richtigen app_data-Pfad. Wenn Sie keine Bedenken hinsichtlich der MSBuild-Kompatibilität haben, können Sie die Buildabhängigkeit mithilfe von Visual Studio festlegen. Oder Sie können die Website-Projekt bearbeiten und einen Verweis mit den anderen <Reference> Tags hinzufügen:

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

Auf Postbuild, kopieren Sie die WebJob bin Ausgabe an den magischen Ordner App_Data

WebJobs erwartet in app_data\jobs\[type]\[name] zu sein , so kopieren wir die WebJob ist auf den betreffenden Ordner in dem Website-Projekt:

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 

die Website Sagen Sie die WebJob Magie Ordner, wenn einschließen es setzt

(siehe: 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> 

Stellen Sie die Website der normalen Azure veröffentlichen Profile verwenden. Erledigt!

Verwandte Themen