Ошибка проекта SSDT в предупреждении о недопустимом дочернем элементе IncludeCompositeObjects

#visual-studio-2017 #sql-server-data-tools

#visual-studio-2017 #sql-server-data-tools

Вопрос:

Я работаю над проектом SSDT. Сценарий публикации выглядит следующим образом:

 <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <IncludeCompositeObjects>True</IncludeCompositeObjects>
        <TargetDatabaseName>VisionStaging</TargetDatabaseName>
        <DeployScriptFileName>VisionStaging.sql</DeployScriptFileName>
        <TargetConnectionString>xxxx</TargetConnectionString>
        <BlockOnPossibleDataLoss>True</BlockOnPossibleDataLoss>
        <CreateNewDatabase>True</CreateNewDatabase>
        <ProfileVersionNumber>1</ProfileVersionNumber>
        <IgnoreColumnOrder>True</IgnoreColumnOrder>
        <IgnorePartitionSchemes>True</IgnorePartitionSchemes>
      </PropertyGroup>
      <ItemGroup>
        <SqlCmdVariable Include="master">
          <Value>master</Value>
        </SqlCmdVariable>
      </ItemGroup>
    </Project>
  

Когда я открываю этот файл в Visual Studio, появляется несколько предупреждений:

Элемент ‘PropertyGroup’ в пространстве имен ‘http://schemas.microsoft.com/developer/msbuild/2003 ‘имеет недопустимый дочерний элемент ‘IncludeCompositeObjects’ в пространстве имен’http://schemas.microsoft.com/developer/msbuild/2003

Элемент ‘ItemGroup’ в пространстве имен ‘http://schemas.microsoft.com/developer/msbuild/2003 ‘имеет недопустимый дочерний элемент ‘SqlCmdVariable’ в пространстве имен ‘http://schemas.microsoft.com/developer/msbuild/2003 ‘.

Элемент ‘Project’ в пространстве имен ‘http://schemas.microsoft.com/developer/msbuild/2003 ‘ имеет неполное содержание.

Я полагаю, что последнее вызвано первыми двумя. Есть идеи, как избавиться от этих предупреждений? Обратите внимание, что эти файлы были созданы с помощью плагина SSDT, который является 15.1.61902.21100, и VS не показывает, что для него доступны какие-либо обновления. Другими словами, плагин SSDT поместил эти элементы в файл, а не я.

Комментарии:

1. Это можно игнорировать, проект будет успешно собран без ошибок, и у вас не должно возникнуть проблем с публикацией с использованием этого профиля публикации.

Ответ №1:

PropertyGroup содержит набор пользовательских элементов свойств.

Проверка схемы в этом случае MSBuild schema в среде разработки Visual Studio неправильно обрабатывает пользовательские свойства, поэтому, если у вас открыт ваш publish.xml файл, вы всегда будете получать предупреждение о первом пользовательском элементе в PropertyGroup разделе, таком как IncludeCompositeObjects

Это не должно вызвать никаких проблем, поскольку вы можете определять свои собственные свойства, они должны появляться только при открытии publish.xml файла для редактирования в IDE.

Если вы внесете свои изменения и закроете файл, они должны исчезнуть.