Использование подстановочных знаков в csproj для включения целых папок в пакет SharePoint wsp

Я просто трачу последние 4 или около того часа, пытаясь понять, почему при компиляции развернутого пакета SharePoint (файл wsp) файлы, которые были указаны с помощью подстановочных знаков, не всегда включались в пакет. «Всегда» оказалось «никогда на чистой сборке» и «обычно иначе». На самом деле файлы, на которые указывает спецификация подстановочных знаков, не существовали в момент загрузки проекта (они помещаются туда как часть сборки), и это оказалось сутью проблемы. - кажется, что расширение подстановочных знаков происходит только тогда, когда Visual Studio или MSBuild (это происходит в обоих случаях) загружает файл csproj. Если в этот момент файлов нет, то любые файлы, размещенные там как часть сборки, будут рассматриваться для включения в пакет файлов.

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

Я думаю, что я хотел бы знать, есть ли лучший способ сделать это, например. можно ли использовать включение подстановочных знаков в файлы .spdata или есть другой способ указать целые каталоги для включения в файлы .wsp (с возможностью указать имя целевого каталога)?


person Dylan Nicholson    schedule 30.07.2015    source источник


Ответы (1)


Если я вас правильно понял, ваши проблемы связаны с оценкой элементов файлов в msbuild.

если вы укажете внутри цели упаковки новую группу элементов, она будет оцениваться только после перехода в цель, например:

    <Target Name="ConfigurationChanges" AfterTargets="Build">
        <ItemGroup>
            <ConfigFiles Include="$(DeliveryFolder)\**\*.spdata"/>
        </ItemGroup>
    </Target>
person Totem    schedule 30.07.2015