1

SSISプロジェクトでPostBuildEventを作成しようとしています。これは、1つのテストパッケージを含むテストプロジェクトからの元の.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>

<PostBuildEvent>を挿入してみましたが、こんな感じです

<?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はまったく発生しません。私はここで何が間違っているのですか?

4

1 に答える 1

1

.dtproj が <PostBuildEvent> をサポートしていると誰が言いましたか? <PostBuildEvent> は MSBUILD ベースのプロジェクトでサポートされていますが、.dtproj はまったく異なるスキーマを持ち、PropertyGroup または PostBuildEvent タグを認識していません。

このサンプルのように、.dtsx ファイルを c:\ にコピーするだけの場合は、OutputPath を c:\ に変更すると、.dtproj が .dtsx ファイル (および構成) を bin\ ではなく c:\ にコピーします。デフォルトで使用されるディレクトリ。

より一般的なソリューションが必要な場合は、他のプロジェクト (<PostBuildEvent> をサポートする) をソリューションに追加し、そこでカスタム コマンドを定義します。次に、.dtproj プロジェクトだけをビルドするのではなく、ソリューション全体をビルドします。

于 2009-08-16T08:55:10.877 に答える