2009-08-10 2 views
0

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

<?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 не срабатывает вообще. Что я здесь делаю неправильно?

ответ

1

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

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

Если вам нужно более общее решение, я бы добавил другой проект (который поддерживает <PostBuildEvent>) в решение и определяет там специальные команды. Затем постройте целое решение, а не создайте проект .dtproj.

+1

@Michael: Можете ли вы указать мне образец, где я могу это узнать? Я не могу воспроизвести поведение копии в своей среде. –