InitSettingsFilePath Not Set By BTDF

Topics: Bindings File, Settings Management and SSO
Dec 14, 2010 at 11:35 AM

Hi Thomas,
I had a BTDF project with simple Portbindings file.
Later I tried to upgrade it by using PortbindingsMaster file without using the ifdef stuff by referring to the BasicMasterBindings Sample project.

However I am getting the below error:--

Starting build...
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe "C:\References\SampleDeployment\Deployment\Deployment.btdfproj" /nologo /t:Deploy /p:Configuration=Debug

Build started 14.12.2010 13:00:52.
Project "C:\References\SampleDeployment\Deployment\Deployment.btdfproj" on node 1 (Deploy target(s)).
SetWinVer:
  Running on Windows V61
  Detected IIS 7
GetSoftwarePaths:
  Using .NET Framework Install Path 'C:\Windows\Microsoft.NET\Framework\v2.0.50727'.
  Using BizTalk Install Path 'C:\Program Files\Microsoft BizTalk Server 2009\'.
  Using Deployment Framework Install Path 'C:\Program Files\Deployment Framework for BizTalk\5.0\'.
  Using Deployment Framework Tools Path 'C:\Program Files\Deployment Framework for BizTalk\5.0\Framework\DeployTools'.
ExportSettings:
  "C:\Program Files\Deployment Framework for BizTalk\5.0\Framework\DeployTools\EnvironmentSettingsExporter.exe" "C:\References\SampleDeployment\Deployment\EnvironmentSettings\SettingsFileGenerator.xml" "C:\References\SampleDeployment\Deployment\EnvironmentSettings"
  Environment Settings Spreadsheet to XML Exporter 1.6.0
  [http://EnvSettingsManager.codeplex.com]
  Copyright (C) 2007-10 Thomas F. Abraham.  All Rights Reserved.
 
  Importing from SettingsFileGenerator.xml...
 
  Output format is XmlPreprocess (multi-file).
 
  Exporting to SampleDeployment_Local.xml...
  Exporting to SampleDeployment_Dev.xml...
  Exporting to SampleDeployment_Test.xml...
  Exporting to SampleDeployment_Prod.xml...
 
  Finished.
InitializeAppName:
  BizTalk Application Name is BasicMasterBindings
InitSettingsFilePath:
  Invalid settings file path (OK on server undeploy).
PreprocessBindings:
  Clearing file attributes for 'PortBindings.xml'.
  "C:\Program Files\Deployment Framework for BizTalk\5.0\Framework\DeployTools\xmlpreprocess.exe" /f /v /c /noDirectives /i:"C:\References\SampleDeployment\Deployment\PortBindingsMaster.xml"
/o:"C:\References\SampleDeployment\Deployment\PortBindings.xml" /d:CurDir="C:\References\SampleDeployment" /s:""
  XmlPreprocess v2.0.13.0
  Copyright (c) 2004-2010 Loren M Halvorson
  XML File Preprocessor
  
  /s:: Argument expects a parameter

=============================================================================================

My BTDF (refer the added lines in blue that was used for incorporating PortbindingsMaster.xml :--

<?xml version="1.0" encoding="utf-8"?>
<!--
  Deployment Framework for BizTalk 5.0
  Copyright (C) 2008-2010 Thomas F. Abraham and Scott Colestock
-->
<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>BasicMasterBindings</ProjectName>
    <ProjectVersion>1.0</ProjectVersion>
    <IncludeSchemas>true</IncludeSchemas>
    <IncludeOrchestrations>false</IncludeOrchestrations>
    <IncludeTransforms>false</IncludeTransforms>
    <IncludePipelines>true</IncludePipelines>
    <IncludeComponents>true</IncludeComponents>
    <IncludePipelineComponents>false</IncludePipelineComponents>
    <IncludeVocabAndRules>true</IncludeVocabAndRules>
    <IncludeBAM>true</IncludeBAM>
    <SkipBamUndeploy>false</SkipBamUndeploy>
    <!-- Do not restart IIS during deployment since we don't use any IIS artifacts in this sample. -->
    <SkipIISReset>true</SkipIISReset>
    <!-- Do not require #ifdef around macros being substituted in PortBindingsMaster.xml and other XMLPreprocess'd files. -->
    <RequireXmlPreprocessDirectives>false</RequireXmlPreprocessDirectives>
    <UsingMasterBindings>true</UsingMasterBindings>
    <IncludeSSO>false</IncludeSSO>
    <IncludeMessageBindings>true</IncludeMessageBindings>
    <IncludeSettingsSpreadsheetInMsi>true</IncludeSettingsSpreadsheetInMsi>
    <ExplicitlyDeployRulePoliciesOnDeploy>true</ExplicitlyDeployRulePoliciesOnDeploy>
    <ManageFileAdapterPhysicalPaths>false</ManageFileAdapterPhysicalPaths>
    <SkipHostInstancesRestart>false</SkipHostInstancesRestart>
    <StartApplicationOnDeploy>false</StartApplicationOnDeploy>
  </PropertyGroup>
  <PropertyGroup>
    <ProductVersion>1.0.0</ProductVersion>
    <ProductId>54EB5D9E-44FC-475D-9151-A09B41278B43</ProductId>
    <ProductName>SampleDeployment</ProductName>
    <Manufacturer>Avinandan</Manufacturer>
    <PackageDescription>SampleDeployment</PackageDescription>
    <PackageComments>SampleDeployment</PackageComments>
    <!-- NEVER change the ProductUpgradeCode. -->
    <ProductUpgradeCode>4601d32b-e2ec-4d25-88f1-e751c2811e3b</ProductUpgradeCode>
   
    <!--<DefaultInstallDir></DefaultInstallDir>-->
    <!--<PortBindings>PortBindings.xml</PortBindings>-->
    <!--<PortBindingsMaster>PortBindingsMaster.xml</PortBindingsMaster>-->
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
    <DeploymentFrameworkTargetsPath>$(MSBuildExtensionsPath)\DeploymentFrameworkForBizTalk\5.0\</DeploymentFrameworkTargetsPath>
    <OutputPath>bin\Debug\</OutputPath>
    <DeployPDBsToGac>false</DeployPDBsToGac>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)' == 'Release'">
    <DeploymentFrameworkTargetsPath>$(MSBuildExtensionsPath)\DeploymentFrameworkForBizTalk\5.0\</DeploymentFrameworkTargetsPath>
    <OutputPath>bin\Release\</OutputPath>
    <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>true</DeployPDBsToGac>
  </PropertyGroup>
  <ItemGroup>
    <!-- We name our host(s) explicitly to avoid having the framework bounce them all. -->
    <BizTalkHosts Include="BizTalkServerApplication" />
  </ItemGroup>
  <!--<ItemGroup>
    <PropsFromEnvSettings Include="SsoAppUserGroup;SsoAppAdminGroup" />
  </ItemGroup>-->
  <ItemGroup>
    <Schemas Include="SampleDeployment.Schemas.dll">
      <LocationPath>..\$(ProjectName).Schemas\bin\$(Configuration)</LocationPath>
    </Schemas>
    <Orchestrations Include="$(ProjectName).Orchestrations.dll">
        <LocationPath>..\$(ProjectName).Orchestrations\bin\$(Configuration)</LocationPath>
    </Orchestrations>
    <Transforms Include="$(ProjectName).Maps.dll">
      <LocationPath>..\$(ProjectName).Maps\bin\$(Configuration)</LocationPath>
    </Transforms>
    <Pipelines Include="$(ProjectName).Pipelines.dll">
      <LocationPath>..\$(ProjectName).Pipelines\bin\$(Configuration)</LocationPath>
    </Pipelines>
    <Components Include="$(ProjectName).CommonFunctions.dll">
      <LocationPath>..\$(ProjectName).CommonFunctions\bin\$(Configuration)</LocationPath>
    </Components>
    <RulePolicies Include="$(ProjectName).RulePolicy.xml">
      <LocationPath>..\$(ProjectName).BRE\</LocationPath>
    </RulePolicies>
    <RuleVocabularies Include="$(ProjectName).Vocabulary.xml">
      <LocationPath>..\$(ProjectName).BRE\</LocationPath>
    </RuleVocabularies>
    <BamDefinitions Include ="$(ProjectName).BAM.xls">
      <LocationPath>..\$(ProjectName).BAM\</LocationPath>
    </BamDefinitions>
    <BamTrackingProfiles Include ="$(ProjectName).BAM.btt">
      <LocationPath>..\$(ProjectName).BAM\</LocationPath>
    </BamTrackingProfiles>
    <AdditionalFiles Include="$(ProjectName).CommonFunctions.dll">
      <LocationPath>..\$(ProjectName).CommonFunctions\bin\$(Configuration)</LocationPath>
    </AdditionalFiles>
  </ItemGroup>
  <Import Project="$(DeploymentFrameworkTargetsPath)BizTalkDeploymentFramework.targets" />
  <!--
    The Deployment Framework automatically packages most files into the server install MSI.
    However, if there are special folders that you need to include in the MSI, you can
    copy them to the folder $(RedistDir) in the CustomRedist target.
    To include individual files, add an ItemGroup with AdditionalFiles elements.
  -->
  <Target Name="CustomRedist">
    <Copy SourceFiles="EnvironmentSettings\SettingsFileGenerator.xml" DestinationFolder="$(RedistDir)\Deployment\EnvironmentSettings" />
  </Target>
  <Target Name = "CustomDeployTarget">
  </Target>
  <Target Name ="CustomUndeployTarget">
  </Target>
  </Project>

==================================================================================

Could you please assist and let me know what I am missing over here.

 

Thanks,

Avinandan

Dec 14, 2010 at 12:47 PM
Edited Dec 15, 2010 at 8:23 AM

To try finding out the problem, I tried creating a fresh btdf proj (after deleting the whole Deployment folder from the solution) and adding the respective nodes one by one, I found out that the problem is in the changed environment setting xml file, I had changed the default values of setting files name in the SettingFilesGenerator.xml
e.g. Exported_LocalSettings.xml to SampleDeployment_Local.xml

So after exporting the custom named setting files (refer below execution section), my BTDF is not able to set the InitSettingsFilePath variable.

Exporting to SampleDeployment_Local.xml...
Exporting to SampleDeployment_Dev.xml...
Exporting to SampleDeployment_Test.xml...
Exporting to SampleDeployment_Prod.xml...

Now the question is how to resolve this.
Any ideas will be truly appreciated.

Coordinator
Dec 14, 2010 at 2:30 PM

Hi Avinandan,

The Deployment Framework defaults to Exported_LocalSettings.xml for Visual Studio deployments.  If you change the Local export filename in the settings spreadsheet, you need to tell the Deployment Framework the new file path.

You should add a property to your top PropertyGroup like this:

<DeveloperPreProcessSettings>$(MSBuildProjectDirectory)\EnvironmentSettings\SampleDeployment_Local.xml</DeveloperPreProcessSettings>

Thanks,
Tom

Dec 15, 2010 at 8:51 AM

Perfect, I got this worked now.

Thanks a ton !!

Avinandan

Coordinator
Dec 15, 2010 at 10:45 PM

Great!  Thanks for the update.

Tom

Dec 3, 2012 at 3:40 PM

I'm having the same issue.  BTDF is putting a /s:"" as a parm to xmlpreprocess, and I cannot figure out why.

I'm doing the local deploy from within Visual Studio.  The MSI works fine for moving the app to QA and PROD.

Here's the output of the deploy:

ExportSettings:
  "D:\Program Files (x86)\Deployment Framework for BizTalk\5.0\Framework\DeployTools\EnvironmentSettingsExporter.exe" "D:\TFS\NWalters\QTIntegration\BizTalk\Development\QT.DeltaFMA.Extract\QT.DeltaFMA.Extract.Deployment\EnvironmentSettings\SettingsFileGenerator.xml" "D:\TFS\NWalters\QTIntegration\BizTalk\Development\QT.DeltaFMA.Extract\QT.DeltaFMA.Extract.Deployment\EnvironmentSettings"
  Environment Settings Spreadsheet to XML Exporter 1.6.1
  [http://EnvSettingsManager.codeplex.com]
  Copyright (C) 2007-11 Thomas F. Abraham.  All Rights Reserved.
 
  Importing from SettingsFileGenerator.xml...
 
  Output format is XmlPreprocess (multi-file).
 
  Exporting to LOCAL_Exported_Settings.xml...
  Exporting to DEV_Exported_Settings.xml...
  Exporting to QA_Exported_Settings.xml...
  Exporting to STAGE_Exported_Settings.xml...
  Exporting to PROD_Exported_Settings.xml...
 
  Finished.
InitializeAppName:
  BizTalk Application Name is QT.DeltaFMA.Extract_1.0
InitSettingsFilePath:
  Invalid settings file path (OK on server undeploy).
PreprocessBindings:
  Clearing file attributes for 'PortbindingsMaster.xml'.
  "D:\Program Files (x86)\Deployment Framework for BizTalk\5.0\Framework\DeployTools\xmlpreprocess.exe" /f /v /c /i:"D:\TFS\NWalters\QTIntegration\BizTalk\Development\QT.DeltaFMA.Extract\QT.DeltaFMA.Extract.Deployment\PortBindingsMaster.xml" /o:"D:\TFS\NWalters\QTIntegration\BizTalk\Development\QT.DeltaFMA.Extract\QT.DeltaFMA.Extract.Deployment\PortbindingsMaster.xml" /d:CurDir="D:\TFS\NWalters\QTIntegration\BizTalk\Development\QT.DeltaFMA.Extract" /s:""
  XmlPreprocess v2.0.13.0
  Copyright (c) 2004-2010 Loren M Halvorson
  XML File Preprocessor
 
  /s:: Argument expects a parameter

As per above post, I have this set:

    <DeveloperPreProcessSettings>$(MSBuildProjectDirectory)\EnvironmentSettings\LOCAL_Exported_Settings.xml</DeveloperPreProcessSettings>

 

Here's my entire btdfproj file with most of the comments removed.  I think I used your VS tool to create it, then did file compare to merge/match settings from other btdfproj files that work.  I have a similar project that is called DeltaFTZ instead of DeltaFMA, and so far, I can't see any real difference between the two. 

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Installer" ToolsVersion="4.0">
  <PropertyGroup>
    <DeveloperPreProcessSettings>$(MSBuildProjectDirectory)\EnvironmentSettings\LOCAL_Exported_Settings.xml</DeveloperPreProcessSettings>
    <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
    <Platform Condition="'$(Platform)' == ''">x86</Platform>
    <SchemaVersion>1.0</SchemaVersion>
    <ProjectName>QT.DeltaFMA.Extract</ProjectName>
    <ProjectVersion>1.0</ProjectVersion>
    <IncludePipelineComponents>False</IncludePipelineComponents>
    <IncludeComponents>True</IncludeComponents>
    <IncludePipelines>False</IncludePipelines>
    <IncludeOrchestrations>False</IncludeOrchestrations>
    <IncludeCustomFunctoids>False</IncludeCustomFunctoids>
    <IncludeSchemas>True</IncludeSchemas>
    <IncludeTransforms>False</IncludeTransforms>
    <IncludeVocabAndRules>False</IncludeVocabAndRules>
    <IncludeVirtualDirectories>False</IncludeVirtualDirectories>
    <IncludeMessagingBindings>True</IncludeMessagingBindings>
    <IncludeDeploymentTest>False</IncludeDeploymentTest>
    <Includelog4net>False</Includelog4net>
    <IncludeSSO>False</IncludeSSO>
    <IncludeEsbItineraries>False</IncludeEsbItineraries>
    <IncludeBam>False</IncludeBam>
    <IncludeInstallUtilForComponents>False</IncludeInstallUtilForComponents>
    <UsingMasterBindings>True</UsingMasterBindings>
    <EnableXmlPreprocess>True</EnableXmlPreprocess>
    <RequireXmlPreprocessDirectives>False</RequireXmlPreprocessDirectives>
    <ApplyXmlEscape>False</ApplyXmlEscape>
    <IncludeSettingsSpreadsheetInMsi>True</IncludeSettingsSpreadsheetInMsi>
    <IncludeCompsAndVDirsAsResources>False</IncludeCompsAndVDirsAsResources>
    <DeployPDBsToGac>False</DeployPDBsToGac>
    <ManageFileAdapterPhysicalPaths>False</ManageFileAdapterPhysicalPaths>
    <SkipHostInstancesRestart>True</SkipHostInstancesRestart>
    <SkipIISReset>True</SkipIISReset>
    <StartApplicationOnDeploy>False</StartApplicationOnDeploy>
    <EnableAllReceiveLocationsOnDeploy>False</EnableAllReceiveLocationsOnDeploy>
    <StartReferencedApplicationsOnDeploy>False</StartReferencedApplicationsOnDeploy>
    <UseIsolatedAppDomain>False</UseIsolatedAppDomain>
    <EnableBizTalkExtendedLogging>False</EnableBizTalkExtendedLogging>
    <EnableBizTalkAssemblyValidation>False</EnableBizTalkAssemblyValidation>
    <EnableBizTalkCorrelationValidation>False</EnableBizTalkCorrelationValidation>
    <EnableBizTalkSchemaValidation>False</EnableBizTalkSchemaValidation>
    <EnableSideBySide>false</EnableSideBySide>
  </PropertyGroup>
  <PropertyGroup>
    <ProductVersion>1.0.0</ProductVersion>
    <ProductId>b562637b-bc7b-414f-888f-a832f23dfd55</ProductId>
    <ProductName>QT.DeltaFMA.Extract for BizTalk</ProductName>
    <Manufacturer>Deployment Framework User</Manufacturer>
    <PackageDescription>QT.DeltaFMA.Extract</PackageDescription>
    <PackageComments>QT.DeltaFMA.Extract</PackageComments>
    <ProductUpgradeCode>a367b3b7-3fa5-475b-b679-9964934c2cd6</ProductUpgradeCode>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
    <DeploymentFrameworkTargetsPath>$(MSBuildExtensionsPath)\DeploymentFrameworkForBizTalk\5.0\</DeploymentFrameworkTargetsPath>
    <OutputPath Condition="'$(TeamBuildOutDir)' == ''">bin\Debug\</OutputPath>
    <OutputPath Condition="'$(TeamBuildOutDir)' != ''">$(TeamBuildOutDir)</OutputPath>
    <DeployPDBsToGac>false</DeployPDBsToGac>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)' == 'Release'">
    <DeploymentFrameworkTargetsPath>$(MSBuildExtensionsPath)\DeploymentFrameworkForBizTalk\5.0\</DeploymentFrameworkTargetsPath>
    <OutputPath Condition="'$(TeamBuildOutDir)' == ''">bin\Release\</OutputPath>
    <OutputPath Condition="'$(TeamBuildOutDir)' != ''">$(TeamBuildOutDir)</OutputPath>
    <DeployPDBsToGac>false</DeployPDBsToGac>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)' == 'Server'">
    <DeploymentFrameworkTargetsPath>Framework\</DeploymentFrameworkTargetsPath>
    <DeployPDBsToGac>true</DeployPDBsToGac>
  </PropertyGroup>
  <ItemGroup>
    <!-- Schemas-->
    <!--  This is the entire app, per BizTalk software factory, we didn't do separate .DLLs for Schemas, Pipeline, Orchs, Transforms -->
    <Schemas Include="QT.DeltaFMA.Extract.dll">
      <LocationPath>..\QT.DeltaFMA.Extract\bin\$(Configuration)</LocationPath>
    </Schemas>
    <Components Include="QT.DeltaFMA.Extract.BusinessComponents.dll">
      <LocationPath>..\QT.DeltaFMA.Extract.BusinessComponents\bin\$(Configuration)</LocationPath>
    </Components>
  </ItemGroup>
  <ItemGroup>
    <AppsToReference Include="QT.Integration.BizTalk"/>
  </ItemGroup>

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

 

Thanks,

Neal Walters

Coordinator
Dec 4, 2012 at 4:20 AM

Buried in there is the error message:

InitSettingsFilePath:
  Invalid settings file path (OK on server undeploy).

That means the set of conditions in the InitSettingsFilePath target are all falling through and no path is being set.  Can you confirm that your solution and project configuration is named either Debug or Release?

Here are the relevant cases for a VS deploy, all of which must be falling through:

    <CreateProperty Value="$(DeveloperPreProcessSettings)"
      Condition="('$(Configuration)' == 'Debug' or '$(Configuration)' == 'Release') and '$(DeveloperPreProcessSettings)' != '' and Exists('$(DeveloperPreProcessSettings)')">
      <Output TaskParameter="Value" PropertyName="SettingsFilePath" />
    </CreateProperty>

    <CreateProperty Value="$(SettingsFilesExportPath)\local_settings.xml"
      Condition="('$(Configuration)' == 'Debug' or '$(Configuration)' == 'Release') and '$(DeveloperPreProcessSettings)' != '' and !Exists('$(DeveloperPreProcessSettings)') and Exists('$(SettingsFilesExportPath)\local_settings.xml')">
      <Output TaskParameter="Value" PropertyName="SettingsFilePath" />
    </CreateProperty>

    <CreateProperty Value="$(SettingsFilesExportPath)\Exported_DevSettings.xml"
      Condition="('$(Configuration)' == 'Debug' or '$(Configuration)' == 'Release') and '$(DeveloperPreProcessSettings)' == ''">
      <Output TaskParameter="Value" PropertyName="SettingsFilePath" />
    </CreateProperty>

The first case will use your $(DeveloperPreProcessSettings) value if the Configuration is Debug or Release and if the file in $(DeveloperPreProcessSettings) exists.  It would appear from your output that the file does exist, which is why the Configuration name could be the culprit.

The second case is a fallback to the old default export filename, which is used if the old file exists and the $(DeveloperPreProcessSettings) file does not.

The third case could apply if $(DeveloperPreProcessSettings) is not set, and you do have it set.

Thanks,
Tom

Dec 13, 2012 at 8:29 PM
Edited Dec 13, 2012 at 8:40 PM

I just got back to this today.  I've been looking for about an hour now, and still can't find any issue.

When I open solution properties, I see configuration set to Active(Debug). There are two projects, and each one as "Configuration" column = "Debug".

Every project has a bin\Debug and that's where the .DLLs are.

If the three cases you listed, I want case #1 to be used.  I have my own <DeveloperPreProcessSettings> coded, and I want to be in Debug mode.

 

If we look at this, does it prove that I'm truly in debug?

Starting build...
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe "D:\TFS\NWalters\QTIntegration\BizTalk\Development\QT.DeltaFMA.Extract\QT.DeltaFMA.Extract.Deployment\QT.DeltaFMA.Extract.Deployment.btdfproj" /nologo /t:Deploy /p:Configuration=Debug

I tried changing the value of the file as follows:

    <!-- <DeveloperPreProcessSettings>$(MSBuildProjectDirectory)\EnvironmentSettings\LOCAL_Exported_Settings.xml</DeveloperPreProcessSettings>-->
    <DeveloperPreProcessSettings>d:\TFS\NWalters\QTIntegration\BizTalk\Development\QT.DeltaFMA.Extract\QT.DeltaFMA.Extract.Deployment\EnvironmentSettings\LOCAL_Exported_Settings.xml</DeveloperPreProcessSettings>

To isolate issues, I basically took the filename on the disk, and pasted it there, fully qualified (to eliminate any ambiguity of the $MSBuildProjectDirectory.  This file gets rebuilt each time I do a BTDF Deploy in VS:

ExportSettings:
  "D:\Program Files (x86)\Deployment Framework for BizTalk\5.0\Framework\DeployTools\EnvironmentSettingsExporter.exe" "D:\TFS\NWalters\QTIntegration\BizTalk\Development\QT.DeltaFMA.Extract\QT.DeltaFMA.Extract.Deployment\EnvironmentSettings\SettingsFileGenerator.xml" "D:\TFS\NWalters\QTIntegration\BizTalk\Development\QT.DeltaFMA.Extract\QT.DeltaFMA.Extract.Deployment\EnvironmentSettings"
  Environment Settings Spreadsheet to XML Exporter 1.6.1
  [http://EnvSettingsManager.codeplex.com]
  Copyright (C) 2007-11 Thomas F. Abraham.  All Rights Reserved.
 
  Importing from SettingsFileGenerator.xml...
 
  Output format is XmlPreprocess (multi-file).
 
  Exporting to LOCAL_Exported_Settings.xml...  <----------- <------ <-------- file created here  <---------
  Exporting to DEV_Exported_Settings.xml...
  Exporting to QA_Exported_Settings.xml...
  Exporting to STAGE_Exported_Settings.xml...
  Exporting to PROD_Exported_Settings.xml...

 

I have another solution that is nearly identical, and it works fine.  I keep comparing the .btdfproj, the configuration settings, and so-on, for differences, but I can't really see any major difference.

Where can I find this code? 

   <CreateProperty Value="$(DeveloperPreProcessSettings)"
      Condition="('$(Configuration)' == 'Debug' or '$(Configuration)' == 'Release') and '$(DeveloperPreProcessSettings)' != '' and Exists('$(DeveloperPreProcessSettings)')">
      <Output TaskParameter="Value" PropertyName="SettingsFilePath" />
    </CreateProperty>

Could I put a debug/write satement in there to dump the values of the two variables? 
I'll have to brush up on MS/Build.

Thanks again,

Neal Walters

Dec 19, 2013 at 1:48 PM
I think we've discussed this in other threads, but here was the solution:

Adding this line to btdfproj file.
<DeveloperPreProcessSettings>$(MSBuildProjectDirectory)\EnvironmentSettings\LOCAL_Exported_Settings.xml</DeveloperPreProcessSettings>   
My predecessors used a slightly non-standard name for the EnvironmentSettings files.

Neal