2009-08-10 7 views
0

내 SSIS 프로젝트에서 PostBuildEvent를 사용하려고합니다. 이것은 하나의 테스트 패키지가있는 테스트 프로젝트의 원래 .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>를 삽입 시도 그리고 그것은 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> 

것 같습니다. 여기서 내가 뭘 잘못하고 있니?

답변

1

누가 .dtproj를 지원했는지 <PostbuildEvent>? <PostBuildEvent>은 MSBUILD 기반 프로젝트에서 지원되지만 .dtproj는 스키마가 완전히 다르며 단순히 PropertyGroup 또는 PostBuildEvent 태그에 대해 알지 못합니다.

이 샘플에서와 같이 .dtsx 파일을 c : \로 복사하려는 경우 OutputPath를 c : \로 변경할 수 있으며 .dtproj는 .dtsx 파일 (및 configs)을 c : \ bin \ directory 대신에 기본적으로 사용됩니다.

좀 더 일반적인 해결책이 필요하면 솔루션에 <PostBuildEvent>을 지원하는 다른 프로젝트를 추가하고 거기에 사용자 정의 명령을 정의하십시오. 그런 다음 .dtproj 프로젝트를 빌드하는 대신 전체 솔루션을 빌드하십시오.

+1

@ 마이클 : 내가 이것을 배울 수있는 샘플을 가르쳐 주시겠습니까? 내 환경에서 복사 동작을 재현 할 수 없습니다. –

관련 문제