2015-10-01 3 views
0

В папке решения есть две папки (но не добавлены в решение), которые я хочу скопировать для соответствия этой рабочей роли. В этой папке содержатся dll и другие файлы, которые я не хочу включать в решение, и отмечать их как «Содержимое».Копирование из папки (с использованием относительного пути) для соответствия

Я использую Azure 2.4 SDK. Я прочитал около content element по msdn и попытался использовать элемент контента для достижения этого. Что-то вроде ниже:

<Contents> 
    <Content destination="\EnterpriseLibraries_5_0"> 
    <SourceDirectory path="..\..\EnterpriseLibraries\EnterpriseLibraries_5_0\" />  
    </Content> 
    <Content destination="\EnterpriseLibraries_6_0"> 
    <SourceDirectory path="..\..\EnterpriseLibraries\EnterpriseLibraries_6_0" /> 
    </Content> 
</Contents>  

Однако не удается найти исходный каталог каждый раз. Я застрял в создании относительного пути для этих папок.

В качестве второго подхода я скопировал содержимое этих папок в качестве активности post build в $ Outdir. Но события postbuild не влияют на то, что копируется для соответствия.

Просьба предложить способ достижения этой внешней контенты содержимого для согласования с использованием относительного пути.

Обновление: Добавление физического пути в исходную директорию в элементе контента прекрасно работает. Однако я не могу создать относительный путь, не могу понять, как относительный путь «относителен» к какой папке.

Назад к вопросу об относительном пути: Кажется, что базовый путь для родственника продолжает меняться. Он начинается с \\ bin \ debug иногда, если я создаю относительный путь, беря этот базовый путь во время следующей сборки, как-то \ становится базовым путем.

я получаю ошибку любит во время сборки на пути:

Try 1: ServiceDefinition.csdef (0,0): CloudServices089 ошибка: Не удается найти исходный каталог «D: \ а \ Ь \ с \ г \ aa \ aa \ bin \ Debug .... \ ExternalLib \ EnterpriseLibraries_5_0 \ 'в роли WCFWorker.

Try 2: ServiceDefinition.csdef (0,0): error CloudServices089: Не удается найти исходный каталог 'D: \ a \ b \ c \ d \ aa \ aa ........ \ ExternalLib \ EnterpriseLibraries_5_0 \ 'в роли WCFWorker.

ответ

0

раствор, чтобы получить полный путь во время сборки можно с помощью хака:

В файле ccproj, вы можете установить переменные окружения, используя SetEnvironmentVariableTask, определенный в https://stackoverflow.com/a/20014410/413672, как показано ниже:

<Target Name="BeforePackageComputeService"> 
    <SetEnvironmentVariableTask Name="CCPROJ_DIR" Value="$(MSBuildThisFileDirectory)" /> 
</Target> 

Наконец, укажите переменную %CCPROJ_DIR% в атрибуте path вашего элемента SourceDirectory xml.

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