2013-12-03 5 views
2

У меня есть исполняемый файл, который я хочу развернуть вместе с моей веб-ролью Azure. Исполняемый файл имеет файл конфигурации, который также должен быть включен. Я попытался добавить ссылку на проект исполняемого файла в проекте моей веб-роли, в результате чего exe-файл появился в папке bin cspkg, но не в файле конфигурации. Как я могу добавить файл конфигурации? Кажется неправильным включить его непосредственно в качестве файла содержимого в проект веб-роли, потому что этот файл является артефактом сборки (app.config переименовывается в .config.exe во время сборки).Включить конфигурацию ссылочной сборки в cspkg

Спасибо!

ответ

2

В раннем SDK они добавили концепцию папок Ролевого содержимого или папки, которые вы могли бы указать в файле определения службы, и сказать что-нибудь в этой папке, добавить его в пакет и развернуть его с помощью этой роли. Если вы посмотрите на схему для определения службы, вы увидите, что они перечислены в схемах ролей и worker. Вы можете вручную добавить это и указать на любое место в локальной системе, и все, что находится в этом каталоге, будет поднято и включено.

<WebRole name="SimpleWeb" vmsize="Small"> 

    ... 

    <Contents> 
     <Content destination="ConsoleApp"> 
      <SourceDirectory path="c:\src\SimpleWebContent\ConsoleApp\BuildOutput" /> 
     </Content> 
    </Contents> 
    </WebRole> 

Например, вы могли бы указать на выходной директории сборки для исполняемого файла, так что будет включено все, что порождено вашей сборки для этого исполняемого файла. Вы можете установить целевой каталог по отношению к корню приложения, но сложной частью является исходный каталог. Обратите внимание, что в моем примере выше приведен полный путь. В документации говорится, что вы можете использовать относительный путь, но я пробовал много комбинаций, и поведение казалось очень причудливым. Полный путь работает.

Инструменты VS SDK не отображали это до SDK 1.7, и это все еще не очень хорошо. Фил Хофф написал сообщение в блоге под названием «Add Files to your Windows Azure Package using Role Content Folders». Обратите внимание, что при использовании этого метода добавления файлов вы не увидите, что элементы содержимого отображаются в определении вашего сервиса. Они автоматически вводятся во время упаковки. Если вы делаете это как часть процесса сборки, который может не произойти, поскольку VS-инструмент выполняет инъекцию, но, честно говоря, я не пытался напрямую вызвать cspack, чтобы увидеть, действительно ли элементы контента, включенные в файл определения службы, фактически упакованы те или нет. Кроме того, я обнаружил, что просто добавление новой папки и просто наличие файлов в этой папке, похоже, не сработало. Мне приходилось добавлять файлы по имени, что казалось неправильным. Я действительно взломал файл .ccproj, чтобы использовать подстановочный знак в папке, который работал, но также казался мне взломанным.

+0

Спасибо за подробный ответ, я не знал о функции папки содержимого роли. – user1039580

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