Постстройка в проекте SSIS - PullRequest
       14

Постстройка в проекте SSIS

0 голосов
/ 10 августа 2009

Я пытаюсь использовать PostBuildEvent в моем проекте SSIS. Это мой оригинальный файл .DTProj из тестового проекта с одним тестовым пакетом.

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ProductVersion>10.0.2531.0</ProductVersion>
  <SchemaVersion>9.0.1.0</SchemaVersion>
  <State>$base64$PFNvdXnRyb2xJbmZvPg==</State>
  <Database>
    <Name>PreBeforeDeployTest.database</Name>
    <FullPath>PreBeforeDeployTest.database</FullPath>
  </Database>
  <Cubes />
  <Dimensions />
  <DataSources />
  <DataSourceViews />
  <MiningModels />
  <Roles />
  <Miscellaneous />
  <Configurations>
    <Configuration>
      <Name>Development</Name>
      <Options>
        <OutputPath>bin</OutputPath>
        <ConnectionMappings />
        <ConnectionProviderMappings />
        <ConnectionSecurityMappings />
        <DatabaseStorageLocations />
      </Options>
    </Configuration>
  </Configurations>
  <DTSPackages>
    <DtsPackage FormatVersion="3">
      <Name>TestPackage.dtsx</Name>
      <FullPath>TestPackage.dtsx</FullPath>
      <References />
    </DtsPackage>
  </DTSPackages>
</Project>

Я попытался вставить , и это выглядит так

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <PropertyGroup>
    <PostBuildEvent>copy "$(TargetDir)TestPackage.dtsx" "C:\"</PostBuildEvent> 
  </PropertyGroup>
  <ProductVersion>10.0.2531.0</ProductVersion>
  <SchemaVersion>9.0.1.0</SchemaVersion>
  <State>$base64$PFNvdXnRyb2xJbmZvPg==</State>
  <Database>
    <Name>PreBeforeDeployTest.database</Name>
    <FullPath>PreBeforeDeployTest.database</FullPath>
  </Database>
  <Cubes />
  <Dimensions />
  <DataSources />
  <DataSourceViews />
  <MiningModels />
  <Roles />
  <Miscellaneous />
  <Configurations>
    <Configuration>
      <Name>Development</Name>
      <Options>
        <OutputPath>bin</OutputPath>
        <ConnectionMappings />
        <ConnectionProviderMappings />
        <ConnectionSecurityMappings />
        <DatabaseStorageLocations />
      </Options>
    </Configuration>
  </Configurations>
  <DTSPackages>
    <DtsPackage FormatVersion="3">
      <Name>TestPackage.dtsx</Name>
      <FullPath>TestPackage.dtsx</FullPath>
      <References />
    </DtsPackage>
  </DTSPackages>
</Project>

PostBuildEvent вообще не запускается. Что я тут не так делаю?

1 Ответ

1 голос
/ 16 августа 2009

Кто вам сказал .dtproj поддерживает ? поддерживается в проектах на основе MSBUILD, но .dtproj имеет совершенно другую схему и просто не знает о тегах PropertyGroup или PostBuildEvent.

Если вы просто хотите скопировать файлы .dtsx в c: \, как в этом примере - вы можете изменить OutputPath на c: \, а .dtproj скопирует файлы .dtsx (и их конфигурации) в c: \ каталога bin \ используется по умолчанию.

Если вам нужно более общее решение, я бы добавил к решению какой-то другой проект (который поддерживает ) и определил там собственные команды. Затем соберите все решение, а не просто проект .dtproj.

...