Я пытаюсь использовать функцию SourceDirectory в файле определения службы, чтобы скопировать сначала содержимое каталога «Base» в веб-роль, а затем содержимое «AdditionalFiles». Это прекрасно работает для отладки в Azure, однако при упаковке решения я получаю сообщение об ошибке «Отказано в доступе» при упаковке решения, если папка AdditionalFiles содержит файл в том же месте, что и в каталоге Base.
Ошибка 7 Доступ к пути 'C: \ Users \ Alex \ AppData \ Local \ Temp \ vo0niiyx.rvt \ role \ TestWebRole1 \ Approot \ connectionStrings.config' запрещен. C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Windows Azure Tools \ 1.5 \ Microsoft.WindowsAzure.targets 2
Чтобы выразить это в контексте, я работаю над переносом существующего приложения на работу в Azure. Первый шаг, который я делаю, состоит в том, чтобы просто обернуть существующую функциональность так, чтобы она просто запустила в лазури. Кроме того, исходная кодовая база быстро меняется, поэтому я хочу, чтобы мои настройки обертывания были очень отдельными, чтобы избежать необходимости постоянно иметь дело со слиянием и т. Д. До сих пор я имел дело с этим через некоторые сложные сценарии сборки powershell.
Для справки ниже приведены оба файла ServiceDefinition, которые я использую, а также структура каталогов моего решения. Я также столкнулся с той же проблемой при использовании рабочей роли.
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="AzureSourceDirectoryTest" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WebRole name="TestWebRole1" vmsize="ExtraSmall">
<Contents>
<Content destination=".">
<SourceDirectory path="../Base" />
</Content>
<Content destination=".">
<SourceDirectory path="../AdditionalFiles" />
</Content>
</Contents>
<Endpoints>
<InputEndpoint protocol="http" port="80" name="Http" />
</Endpoints>
</WebRole>
</ServiceDefinition>
И структура каталогов (на основе выходных данных команды дерева с удалением содержимого папок bin и obj):
│ AzureSourceDirectoryTest.sln
│
├───AdditionalFiles
│ connectionStrings.config
│
├───AzureSourceDirectoryTest
│ │ AzureSourceDirectoryTest.ccproj
│ │ AzureSourceDirectoryTest.ccproj.user
│ │ ServiceConfiguration.Cloud.cscfg
│ │ ServiceConfiguration.Local.cscfg
│ │ ServiceDefinition.build.csdef
│ │ ServiceDefinition.csdef
│ ├───bin...
│ └───obj...
│
├───Base
│ connectionStrings.config
│
└───TestWebRole1
│ TestWebRole1.csproj
│ TestWebRole1.csproj.user
│
├───bin...
├───obj...
└───Properties
AssemblyInfo.cs