Ошибки при упаковке проекта Azure, если Content SourceDirectory содержит похожие файлы - PullRequest
2 голосов
/ 28 октября 2011

Я пытаюсь использовать функцию 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

1 Ответ

0 голосов
/ 28 октября 2011

Я не уверен, что это должно сделать.Какой connectionStrings.config действительно должен быть включен?Я предполагаю, что он копируется из двух разных мест одновременно, и одна из них не работает из-за одновременного доступа.Могу я спросить, почему вы копируете один и тот же файл дважды?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...