我有一个OData Web Api服务,我将其部署为云服务。 我还有一个网站,它创建了一些grunt任务,创建一个包含所有编译内容的dist文件夹。
我现在要做的是将此文件夹添加到Cloudservice项目中。 我已经尝试了建议的here,但这只会将文件夹复制到cloudservice的批准中,而不是在sitesroot / 0 /中。 因此,部署时无法访问该网站。
如何在构建到我的Cloud Service时添加文件夹,以便它是可从IIS访问的文件夹? 例如,如果我希望我的dist文件夹可以访问: http://mysite.cloudapp.net/dist/或http://mysite.cloudapp.net/client/
我可以使用OData服务将其添加到WebRole项目中,但是这个文件夹是一个移动目标",会添加和删除文件,因此很难将其添加到WebRole项目中不方便。
答案 0 :(得分:0)
你不能拥有将文件存入此文件夹的代码,如果它不存在则创建吗?
除此之外,请按照您的建议将其添加到您的WebRole OData服务项目中。
答案 1 :(得分:0)
此解决方案非常简单: 与此处其他内容文件夹的解决方案类似: Adding additional content folders to Azure package
但不是将servicedefinition.csdef中的文件夹添加到内容部分,只需将其添加为虚拟目录。
就像在内容文件夹的解决方案中一样,在ccproj文件中添加一个任务:
<UsingTask
TaskName="SetEnvironmentVariableTask"
TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v$(MSBuildToolsVersion).dll">
<ParameterGroup>
<Name ParameterType="System.String" Required="true" />
<Value ParameterType="System.String" Required="true" />
</ParameterGroup>
<Task>
<Using Namespace="System" />
<Code Type="Fragment" Language="cs">
<![CDATA[
Environment.SetEnvironmentVariable(Name, Value);
]]>
</Code>
</Task>
</UsingTask>
<Target Name="BeforeBuild" Condition=" '$(FrontendDir)' == '' ">
<Message Text="Setting Project Dir" Importance="high" />
<SetEnvironmentVariableTask Name="FrontendDir" Value="$(ProjectDir)\..\Template.FrontEnd\dist" />
</Target>
但是,不是将其添加为内容,而是将文件夹添加为虚拟目录:
<Site name="Web">
<VirtualDirectory name="Client" physicalDirectory="%FrontendDir%"></VirtualDirectory>
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" />
<Binding name="HttpsIn" endpointName="HttpsIn" />
</Bindings>
</Site>