2014-02-10 2 views
3

У меня есть отдельный проект базы данных, который я хотел бы построить в том же решении, а затем ссылаюсь на созданный dacpac. Когда я пытаюсь добавить проект базы данных, он строит отлично, а dll добавляется во вторичный файл проекта, но dacpac - нет.Как включить созданный проект базы данных, созданный dacpac в проект cs

Есть ли способ, с помощью которого dacpac может быть скопирован в мой основной проект через msbuild? Я продолжаю думать, что должен быть способ изменить файл sqlproj или файл csproj, чтобы dacpac был включен как один из выходов проекта. Мои знания о msbuild не обширны, я не смог понять это.

Мне кажется, что мне нужно добавить dacpac как-то, чтобы сказать элемент '@ (ReferenceCopyLocalPaths), но я не смог его понять. Любые советы или предложения будут оценены.

Я пытался сделать что-то немного как то, что упоминается здесь MSBuild - ItemGroup of all bin directories within subdirectories, выполнив:

<Target Name="AfterBuild"> 
    <Message Text="@(MainAssembly)" /> 
    <!--<DacPacs Include="%(ProjectReference.Directory)**" />--> 
    <ItemGroup> 
     <DacPacs Include="%(ProjectReference.Directory)**/*bin*/*.dac" /> 
    </ItemGroup> 
    <Message Text="@(ReferenceCopyLocalPaths)" /> 
    <Message Text="DacPacs: @(DacPacs)" /> 
    <Message Text="Target Database: $(TargetDatabase)" /> 
    </Target> 

, который ничего не дает для DacPacs (при добавлении группового символа). Также я попытался ссылаться на одну из групп элементов из файла sqlproj, но он выходит пустым:

+0

У вас есть работа? – Justin

+0

Очевидно нет ... У меня такая же проблема здесь :( – glacasa

ответ

0

В свойствах проекта вы можете добавить командную строку события pre-build, чтобы получить копию файла dacpac.

Pre-build event to copy dacpac

Или вы можете просто добавить его в csproj:

<PropertyGroup> 
    <PreBuildEvent>copy "$(SolutionDir)DatabaseProject\bin\$(ConfigurationName)\DatabaseProject.dacpac" "$(ProjectDir)\DatabaseProject.dacpac"</PreBuildEvent> 
</PropertyGroup> 

Это будет работать только, если проект базы данных был построен первый, так что вы должны добавить зависимость. Щелкните правой кнопкой мыши по решению и выберите Project Dependencies..., затем выберите главный проект и убедитесь, что он зависит от проекта базы данных.

enter image description here

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