none
Getting error while using BizTalk Deployment Framework 5.0 RRS feed

  • Question

  • Hi All,

    I am using BizTalk Deployment Framework 5.0 which is at  

    http://biztalkdeployment.codeplex.com/

    I am unaware of how to change the configuration when my orchestration and Maps and Schema are in same folder.

    regardless of folder structure, i want to use the deployment framework for deployment.

    If anyone has some idea, please help!

     

    Its working when I specify different dll for Schemas, different Dll for orchestration and different dll for maps etc.

    but itas not working for single dll with all artifacts.

     

     

     

    Wednesday, August 31, 2011 12:47 PM

Answers

  • Hi Shantibhushan,

     

    check below BTDF file from Hello world example (Samples) which shows how to deploy single project which is having all artifacts like schemas, maps, orchastration etc...

     

     

    <?xml version="1.0" encoding="utf-8" ?>
    <!--
          Deployment Framework for BizTalk 5.0
          Copyright (C) 2008-2010 Thomas F. Abraham and Scott Colestock
         
          This source file is subject to the Microsoft Public License (Ms-PL).

          HelloWorld.Deployment.dfbtproj is a basic template build file designed to show how to
          leverage the MSBuild-based deployment framework for BizTalk.
         
          The framework addresses BizTalk deployments both for developer desktops
          and for production server use after an MSI installation.
         
          It relies on BizTalkDeploymentFramework.targets for the actual BizTalk deployment work;
          only project-specific variations and deployment work must be done in this file.
          Think of this like a .csproj or .vbproj project file.
    -->

    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Deploy">

      <PropertyGroup>
        <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
        <Platform Condition="'$(Platform)' == ''">x86</Platform>
        <SchemaVersion>1.0</SchemaVersion>
        <ProjectName>HelloWorld</ProjectName>
        <ProjectVersion>1.0</ProjectVersion>

        <!-- If all of your project artifacts are contained in a single assembly, then
            Set <IncludeSchemas> to true,
            Add an <ItemGroup> that overrides the default <Schemas> setting to point to your DLL (see below),
            Set <IncludeOrchestrations> and <IncludeTransforms> to false. -->
        <IncludeSchemas>true</IncludeSchemas>
        <IncludeOrchestrations>false</IncludeOrchestrations>
        <IncludeTransforms>false</IncludeTransforms>

        <EnableXmlPreprocess>false</EnableXmlPreprocess>

        <!-- Do not restart IIS during deployment since we don't use any IIS artifacts in this sample. -->
        <SkipIISReset>true</SkipIISReset>
      </PropertyGroup>

      <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
        <DeploymentFrameworkTargetsPath>$(MSBuildExtensionsPath)\DeploymentFrameworkForBizTalk\5.0\</DeploymentFrameworkTargetsPath>
        <OutputPath>bin\Debug\</OutputPath>
        <!-- Get our PDBs into the GAC so we get file/line number information in stack traces. -->
        <DeployPDBsToGac>false</DeployPDBsToGac>
      </PropertyGroup>
      <PropertyGroup Condition="'$(Configuration)' == 'Release'">
        <DeploymentFrameworkTargetsPath>$(MSBuildExtensionsPath)\DeploymentFrameworkForBizTalk\5.0\</DeploymentFrameworkTargetsPath>
        <OutputPath>bin\Release\</OutputPath>
        <!-- Get our PDBs into the GAC so we get file/line number information in stack traces. -->
        <DeployPDBsToGac>false</DeployPDBsToGac>
      </PropertyGroup>
      <PropertyGroup Condition="'$(Configuration)' == 'Server'">
        <DeploymentFrameworkTargetsPath>Framework\</DeploymentFrameworkTargetsPath>
        <!-- Get our PDBs into the GAC so we get file/line number information in stack traces. -->
        <DeployPDBsToGac>false</DeployPDBsToGac>
      </PropertyGroup>

      <PropertyGroup>
        <!-- Make your MSI unique - your project should change GUIDs.  -->
        <!-- BizTalk App Version Upgrade -->
        <!--   For each new product release to be deployed to your BizTalk servers: -->
        <!--     1) Increment ProductVersion -->
        <!--     2) Generate a new GUID and update ProductId with the new GUID -->
        <ProductVersion>1.0.0</ProductVersion>
        <ProductId>66B24BD1-0FC1-4ae4-9109-C371134F540C</ProductId>
        <!-- BizTalk App Version Upgrade -->

        <ProductName>Deployment Framework for BizTalk - HelloWorld</ProductName>
        <Manufacturer>Deployment Framework for BizTalk Team</Manufacturer>
        <PackageDescription>Deployment Framework for BizTalk Sample - HelloWorld</PackageDescription>
        <PackageComments>Sample demonstrating the Deployment Framework for BizTalk - HelloWorld</PackageComments>
        <!-- NEVER change the ProductUpgradeCode. -->
        <ProductUpgradeCode>5C21D566-0D99-4003-BBF9-53A3739DD7CB</ProductUpgradeCode>
      </PropertyGroup>

      <ItemGroup>
        <Schemas Include="HelloWorld.dll">
          <LocationPath>..\$(ProjectName)\bin\$(Configuration)</LocationPath>
        </Schemas>
      </ItemGroup>

      <Import Project="$(DeploymentFrameworkTargetsPath)BizTalkDeploymentFramework.targets" />

      <!--
        The Deployment Framework automatically packages most files into the server install MSI.
        However, if there are special folders or files that you need to include in the MSI, you can
        copy them to the folder $(RedistDir) in the CustomRedist target.
      -->
      <Target Name="CustomRedist">
        <MakeDir Directories="$(RedistDir)\TestFiles" />

        <!-- Force MSBuild to expand the item spec into physical file specs -->
        <CreateItem Include="..\TestFiles\**\*.*">
          <Output TaskParameter="Include" ItemName="TestFilesSourceGroup" />
        </CreateItem>

        <!-- Copy all of the files and subfolders from ..\TestFiles to $(RedistDir)\TestFiles -->
        <Copy DestinationFolder="$(RedistDir)\TestFiles\%(RecursiveDir)" SourceFiles="@(TestFilesSourceGroup)"/>
      </Target>

    </Project>

     

    Regards,

    Amit

    • Marked as answer by Shantibhushan Friday, September 2, 2011 10:37 AM
    Wednesday, August 31, 2011 3:00 PM

All replies

  • Hi,

     

    I know deployment framework supports assemblies that contain more than one type of artefact.

    You can change this by making some changes in the .btdfproj file.

    For example:

    <ItemGroup>
      <Schemas Include="MyProject.MySchemas.InternalSchemas.dll">
       <LocationPath>..\MyProject.MySchemas.InternalSchemas\bin\$(Configuration)</LocationPath>
      </Schemas>
    </ItemGroup>

    You can also do this for orchestrations, etc.

    There is a pdf manual in the btdf installation folder that probably contains more information on how to do this.

     


    HTH,

    Randal van Splunteren 2 x MVP BizTalk Server, MCTS BizTalk Server
    my blog

    Check out the PowerShell provider for BizTalk
    Please mark as answered if this answers your question.
    Wednesday, August 31, 2011 1:00 PM
    Moderator
  • Hi Randal,

    Thanks for your reply. Yes I am using a PDF manual.

    but My projects contains Schema, Maps and orchestration in a single project and has only one DLL.

     

    When i create a different projects for Schema, maps and Orchestrations etc, its working fine.

     

    But its not working with single project with orchestration, Schema and Maps (where there is onyl one DLL)

    For example MyProject.dll contains both Schema, Maps and Orchestrations in it.
    Wednesday, August 31, 2011 2:05 PM
  • Hi Shantibhushan,

     

    check below BTDF file from Hello world example (Samples) which shows how to deploy single project which is having all artifacts like schemas, maps, orchastration etc...

     

     

    <?xml version="1.0" encoding="utf-8" ?>
    <!--
          Deployment Framework for BizTalk 5.0
          Copyright (C) 2008-2010 Thomas F. Abraham and Scott Colestock
         
          This source file is subject to the Microsoft Public License (Ms-PL).

          HelloWorld.Deployment.dfbtproj is a basic template build file designed to show how to
          leverage the MSBuild-based deployment framework for BizTalk.
         
          The framework addresses BizTalk deployments both for developer desktops
          and for production server use after an MSI installation.
         
          It relies on BizTalkDeploymentFramework.targets for the actual BizTalk deployment work;
          only project-specific variations and deployment work must be done in this file.
          Think of this like a .csproj or .vbproj project file.
    -->

    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Deploy">

      <PropertyGroup>
        <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
        <Platform Condition="'$(Platform)' == ''">x86</Platform>
        <SchemaVersion>1.0</SchemaVersion>
        <ProjectName>HelloWorld</ProjectName>
        <ProjectVersion>1.0</ProjectVersion>

        <!-- If all of your project artifacts are contained in a single assembly, then
            Set <IncludeSchemas> to true,
            Add an <ItemGroup> that overrides the default <Schemas> setting to point to your DLL (see below),
            Set <IncludeOrchestrations> and <IncludeTransforms> to false. -->
        <IncludeSchemas>true</IncludeSchemas>
        <IncludeOrchestrations>false</IncludeOrchestrations>
        <IncludeTransforms>false</IncludeTransforms>

        <EnableXmlPreprocess>false</EnableXmlPreprocess>

        <!-- Do not restart IIS during deployment since we don't use any IIS artifacts in this sample. -->
        <SkipIISReset>true</SkipIISReset>
      </PropertyGroup>

      <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
        <DeploymentFrameworkTargetsPath>$(MSBuildExtensionsPath)\DeploymentFrameworkForBizTalk\5.0\</DeploymentFrameworkTargetsPath>
        <OutputPath>bin\Debug\</OutputPath>
        <!-- Get our PDBs into the GAC so we get file/line number information in stack traces. -->
        <DeployPDBsToGac>false</DeployPDBsToGac>
      </PropertyGroup>
      <PropertyGroup Condition="'$(Configuration)' == 'Release'">
        <DeploymentFrameworkTargetsPath>$(MSBuildExtensionsPath)\DeploymentFrameworkForBizTalk\5.0\</DeploymentFrameworkTargetsPath>
        <OutputPath>bin\Release\</OutputPath>
        <!-- Get our PDBs into the GAC so we get file/line number information in stack traces. -->
        <DeployPDBsToGac>false</DeployPDBsToGac>
      </PropertyGroup>
      <PropertyGroup Condition="'$(Configuration)' == 'Server'">
        <DeploymentFrameworkTargetsPath>Framework\</DeploymentFrameworkTargetsPath>
        <!-- Get our PDBs into the GAC so we get file/line number information in stack traces. -->
        <DeployPDBsToGac>false</DeployPDBsToGac>
      </PropertyGroup>

      <PropertyGroup>
        <!-- Make your MSI unique - your project should change GUIDs.  -->
        <!-- BizTalk App Version Upgrade -->
        <!--   For each new product release to be deployed to your BizTalk servers: -->
        <!--     1) Increment ProductVersion -->
        <!--     2) Generate a new GUID and update ProductId with the new GUID -->
        <ProductVersion>1.0.0</ProductVersion>
        <ProductId>66B24BD1-0FC1-4ae4-9109-C371134F540C</ProductId>
        <!-- BizTalk App Version Upgrade -->

        <ProductName>Deployment Framework for BizTalk - HelloWorld</ProductName>
        <Manufacturer>Deployment Framework for BizTalk Team</Manufacturer>
        <PackageDescription>Deployment Framework for BizTalk Sample - HelloWorld</PackageDescription>
        <PackageComments>Sample demonstrating the Deployment Framework for BizTalk - HelloWorld</PackageComments>
        <!-- NEVER change the ProductUpgradeCode. -->
        <ProductUpgradeCode>5C21D566-0D99-4003-BBF9-53A3739DD7CB</ProductUpgradeCode>
      </PropertyGroup>

      <ItemGroup>
        <Schemas Include="HelloWorld.dll">
          <LocationPath>..\$(ProjectName)\bin\$(Configuration)</LocationPath>
        </Schemas>
      </ItemGroup>

      <Import Project="$(DeploymentFrameworkTargetsPath)BizTalkDeploymentFramework.targets" />

      <!--
        The Deployment Framework automatically packages most files into the server install MSI.
        However, if there are special folders or files that you need to include in the MSI, you can
        copy them to the folder $(RedistDir) in the CustomRedist target.
      -->
      <Target Name="CustomRedist">
        <MakeDir Directories="$(RedistDir)\TestFiles" />

        <!-- Force MSBuild to expand the item spec into physical file specs -->
        <CreateItem Include="..\TestFiles\**\*.*">
          <Output TaskParameter="Include" ItemName="TestFilesSourceGroup" />
        </CreateItem>

        <!-- Copy all of the files and subfolders from ..\TestFiles to $(RedistDir)\TestFiles -->
        <Copy DestinationFolder="$(RedistDir)\TestFiles\%(RecursiveDir)" SourceFiles="@(TestFilesSourceGroup)"/>
      </Target>

    </Project>

     

    Regards,

    Amit

    • Marked as answer by Shantibhushan Friday, September 2, 2011 10:37 AM
    Wednesday, August 31, 2011 3:00 PM
  • Hi Shantibhusan,

    Since you have schemas, maps and orchestrations all are in one assembly. You need to add following things in the btdf project file:

      <ItemGroup>
         <Schemas Include="ProjectName.dll">
          <LocationPath>..\ProjectName\bin\$(Configuration)</LocationPath>
        </Schemas>
        <Transforms Include="ProjectName.dll">
          <LocationPath>..\ProjectName\bin\$(Configuration)</LocationPath>
        </Transforms>
        <Orchestrations Include="ProjectName.dll">
          <LocationPath>..\ProjectName\bin\$(Configuration)</LocationPath>
        </Orchestrations>
       </ItemGroup>

    ProjectName.dll is the assembly which contain maps, orchestration and schemas.

    Rgds,

    Abhijit


    Abhijit Mahato - Microsoft Community Contributor 2011 - MCTS BizTalk Server blog: http://abhijitmahato.wordpress.com/ Please "Mark as Answer" if Post has Answered the Question
    Thursday, September 1, 2011 6:27 AM
  • @Amit,

    Thanks a lot. following thing solved the problem.

    -----

        <IncludeSchemas>true</IncludeSchemas>
        <IncludeOrchestrations>false</IncludeOrchestrations>
        <IncludeTransforms>false</IncludeTransforms>

    -----

    @Abhijit - Thanks a lot for your reply.

    You are right, but its when we have different dll's for Schemas , maps and orch . Which was working earlier.

     

    Regards,

    Bhushan

    Friday, September 2, 2011 10:40 AM
  • Hi,

    I have two version two schema dll versions like 1.X and 2.X, i wanted to use 1.X during the build, how i can use the specific version of dll in my project?

    Regards,

    Mani.

    Tuesday, November 21, 2017 10:44 AM