"Deploys the BizTalk Solution" button generates an error

Topics: Getting Started/Beginner
Jun 20, 2011 at 3:01 PM

I opened the HelloWorld solution for BT 2010, added a BTDF development project to the solution then clicked the "Deploys the BizTalk Solution" button and I get this:

"Could not find a .btdfproj file for this solution. Valid locations relative to the solution root are: <solutionNameNoExtension>.Deployment\<solutionNameNoExtension>.Deployment.btdfproj, Deployment\<solutionNameNoExtension>.Deployment.btdfproj or Deployment\Deployment.btdfproj. "

Why? And how is this making my BT deployments easier?

Coordinator
Jun 20, 2011 at 3:25 PM

You'll find a link to the Deployment Framework documentation under your Start menu.  In addition, there are several sample applications which can be found in the Program Files folder where you installed the Deployment Framework.  Please review those first then feel free to post any follow-up questions here.

Thanks,
Tom

Jun 20, 2011 at 5:47 PM

The samples all work fine but how do i create and or modify a BTDF deployment project? Is there a UI or is it all manual XML manipulation?

Coordinator
Jun 20, 2011 at 6:03 PM

Setting up a new project is covered in the documentation starting on page 9 "Configuring Your Project for the First Time".  The new project wizard that creates the deployment project is covered starting on page 11.  Creating a new deployment project is a wizard UI in Visual Studio.

As for ongoing maintenance of an existing .btdfproj file, yes, it requires editing the .btdfproj as XML.  However, if you do that in Visual Studio you have full IntelliSense and the syntax is really quite straightforward.  I think you'll find that after a project is set up the first time, you really don't end up making a lot of changes to the .btdfproj.  Often just throwing in a new element for a new rule policy file or a new assembly, etc.



Thanks,
Tom

Jun 22, 2011 at 6:02 PM

I tried running the advanced example that you had as part of your install. When I try to drop the sample file: BizTalkSampleS1_output.xml it causes the Orchestration to error out.

Coordinator
Jun 23, 2011 at 3:55 AM

If you could provide the complete error details, perhaps I can help you figure out what is going on.

Thanks,
Tom

Jun 23, 2011 at 3:00 PM
Edited Jun 28, 2011 at 12:14 PM

-------

Jun 23, 2011 at 3:10 PM
Edited Jun 28, 2011 at 12:19 PM

I now also receive ANOTHER error when attempting to install the ESBToolkitSSOResolver example:

Build FAILED.

"C:\Program Files (x86)\Deployment Framework for BizTalk\5.0\Samples\BizTalk2009\ESBToolkitSSOResolver\ESBToolkitSSOResolver.Deployment\ESBToolkitSSOResolver.Deployment.btdfproj" (Deploy target) (1) ->(DeployAppDefinition target) ->   C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk\5.0\BizTalkDeploymentFramework.targets(1196,5): error : Unable to find BizTalk application 'Microsoft.Practices.ESB' to reference from application 'ESBToolkitSSOResolver'. [C:\Program Files (x86)\Deployment Framework for BizTalk\5.0\Samples\BizTalk2009\ESBToolkitSSOResolver\ESBToolkitSSOResolver.Deployment\ESBToolkitSSOResolver.Deployment.btdfproj]

   0 Warning(s)   

   1 Error(s)

Jun 23, 2011 at 3:36 PM
Edited Jun 28, 2011 at 12:14 PM

-----

Jun 23, 2011 at 3:41 PM

So far the only BizTalk project in your sample list which deployed successfully and actually ran was the Hello World example. That is not comforting.

Coordinator
Jun 23, 2011 at 3:49 PM

Advanced:
The log4net registry key is not found.  Is your host running as 64-bit or 32-bit?  If 64-bit, the registry key is probably only present in the 32-bit hive.  The deployment always runs in 32-bit mode, so it only sees the 32-bit registry.  If you don't need/want log4net anyway, then just set IncludeLog4net to false in the .btdfproj.

ESBToolkitSSOResolver:
Unable to find BizTalk application 'Microsoft.Practices.ESB'.  This is because you have not installed and deployed the Microsoft ESB Toolkit, which is a prerequisite for this sample.

BasicMasterBindings:
Could not load file or assembly 'BasicMasterBindings.dll' or one of its dependencies. The system cannot find the file specified.  It looks like you have not compiled the solution.

Also, I recommend copying the samples to somewhere other than the Program Files folder to avoid the restrictive permissions in that directory tree, or be sure to always run VS as administrator.

Thanks,
Tom

Jun 23, 2011 at 6:07 PM

I made modifications to the deployment project and now when I try to deploy I get "could not find a .btdfproj file for this solution"

Coordinator
Jun 23, 2011 at 7:06 PM

Which project and what did you modify?

Jun 23, 2011 at 7:32 PM

Hello World. What file(s) do i need to look at to find out why it is not pointing to the .btdfproj file?

Coordinator
Jun 23, 2011 at 7:39 PM

In Visual Studio it uses relative paths.  When the HelloWorld solution is open, there should be a deployment project folder one level below the solution root.  It's the exact folder structure from .SLN down that you see in the sample as installed.  If you open that with Visual Studio, everything is in the correct relative position for the VS add-in to search down from the solution and find the .btdfproj.

 

Jun 23, 2011 at 7:47 PM
tfabraham wrote:

In Visual Studio it uses relative paths.  When the HelloWorld solution is open, there should be a deployment project folder one level below the solution root.  It's the exact folder structure from .SLN down that you see in the sample as installed.  If you open that with Visual Studio, everything is in the correct relative position for the VS add-in to search down from the solution and find the .btdfproj.

 

It is there but it doesn't see it.

Jun 23, 2011 at 8:14 PM

I tried adding a new deployment project and I got the error below. Why is it looking in this directory and how can I get the project/solution to point to a deployment directory/file of my choice? I also cannot add the new deployment project to my solution.

Starting build...C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe "C:\Program Files (x86)\Deployment Framework for BizTalk\5.0\Samples\BizTalk2009\ACH\Deployment\Deployment.btdfproj" /nologo /t:Deploy /p:Configuration=Debug
MSBUILD : error MSB1009: Project file does not exist.Switch: C:\Program Files (x86)\Deployment Framework for BizTalk\5.0\Samples\BizTalk2009\ACH\Deployment\Deployment.btdfproj

Coordinator
Jun 24, 2011 at 6:12 AM

I would recommend trying this outside of the Program Files folder.

Assuming that you had a valid BizTalk solution to start with (the "ACH" one mentioned in the path), did you open the solution, right-click (or select) the solution root node and select Add/New Project/Deployment Framework for BizTalk project?  Where are you hoping to put the project relative to the solution root?  It will always be in a folder named <solutionNameNoExtension>.Deployment or simply Deployment.  No other folder names are supported -- to avoid requiring the add-in to search through the whole solution folder looking for the project file.

Tom

Jun 24, 2011 at 11:08 AM
Edited Jun 28, 2011 at 12:14 PM

For one thing in your sample hello world BT app the deployment folder is named HelloWorld.Deployment did you do that manually? Second, yes I have a valid compiled BT test project. I added the Deployment project ( Add/New Project/Deployment Framework for BizTalk project ) it put the project in the root project folder and is named "Deployment".  It is not however showing up in my solution in Visual Studio and no matter how I have tried (add new, existing project, etc.) I cannot see the project in my solution. When I try to deploy I get this:

 

----

Jun 24, 2011 at 11:10 AM

As an addendum, my development environment is BizTalk 2010, VisualStudio 2010, Windows 7

Jun 24, 2011 at 1:22 PM
Edited Jun 24, 2011 at 1:31 PM
tripower wrote:

As an addendum, my development environment is BizTalk 2010, VisualStudio 2010, Windows 7


I also have the same issue on the same environment. I added the deployement project to the existing solution as described in manual but it fails to create PortBinding.xml. Is is an auto-generated file?

 

"C:\MSBiztalkIntegration\Deployment\Deployment.btdfproj" (PreprocessBindings target) (1) ->

 

(PreprocessBindings target) ->

 

EXEC : error XMLPP101: Input file was not found: "C:\MSBiztalkIntegration\Deployment\PortBindings.xml" Input File: C:\MSBiztalkIntegration\Deployment\PortBindings.xml [C:\MSBiztalkIntegration\Deployment\Deployment.btdfproj]

 

Build FAILED.

Jun 24, 2011 at 1:24 PM

Yes, I am constantly having this issue. The potential for this add-in is amazing but if I cannot get it to work and work consistently i simply cannot use it.

Coordinator
Jun 24, 2011 at 2:07 PM

tripower -- That's good, you now have the project created in the right location.

tripower & miksh -- I assume that you've worked with BizTalk binding XML files before?  You create ports and bindings as part of your application development, so this is not something that the Deployment Framework can produce on its own.  Please review the FAQ page for instructions on setting up your port bindings file for the long-run, but the very simplest initial configuration is to simply deploy your application from Visual Studio, open BizTalk Admin, locate your application, and right-click and export the bindings into <yourDeploymentFrameworkProject>\PortBindings.xml.  You'll have to keep that file updated as you continue development and change ports.

Thanks,
Tom

Jun 27, 2011 at 6:27 PM
Edited Jun 28, 2011 at 12:15 PM

I am getting the following errors, what file do i go to to change paths? Also, again how do I add the DEPLOYMENT project to my solution? I am still unable to do so:

------

Coordinator
Jun 27, 2011 at 7:45 PM

The Deployment Framework Visual Studio add-in does not include a full-blown custom project type like C#, VB.NET, etc., so it will never appear in Solution Explorer as a project.  Please see the FAQ page for more information.  For convenience you can just add the files into your solution with Add Existing Item... at the solution root.

The script cannot find ACH.Orchestrations.dll.  Your .btdfproj should include something like:

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

You'll need to put in the correct path if your Orchestrations project folder name is different.  In this example, you'll find the ProjectName property defined early in your .btdfproj.  Configuration will vary automatically between Debug and Release based on your solution build configuration.

Thanks,
Tom

Jun 28, 2011 at 12:18 PM
Edited Jun 28, 2011 at 12:55 PM

This particular ItemGroup (Orchestrations) was not in the deployment project, not sure why. When I added it and pointed to the correct assembly it still failed with the same error.

 

It was  looking for an assembly called 'ACH.Transforms.dll' (I fixed that)

I am assuming there are numerous ItemGroups that never got created when the Deployment project got created. First why would this happen and second; where is the documentation that lists out all of the ItemGroups that need to exist?

Now I get this:

  Deploying components to GAC...  "C:\Program Files (x86)\Deployment Framework for BizTalk\5.0\Framework\DeployTools\gacutil.exe" /i "..\ACH.Components\bin\Debug\ACH.Components.dll"  Microsoft (R) .NET Global Assembly Cache Utility.  Version 4.0.30319.1  Copyright (c) Microsoft Corporation.  All rights reserved.    Failure adding assembly to the cache:   The system cannot find the file specified.


Why is it looking for all of these assemblies that don't exist and NEVER exist?

Coordinator
Jun 28, 2011 at 2:45 PM

I assume that you created your deployment project using the Add New Project wizard.  During that process was a dialog that gave you a range of options, including whether you have orchestrations to deploy, maps to deploy, schemas to deploy, C# components to deploy, etc.  As a result of your choices there, you have <IncludeComponents>true</IncludeComponents> in your .btdfproj even though, as you state, you don't have a helper components assembly.  You should set that to false and check that the other Include* properties are set correctly.

Also in the dialog during the wizard, there's a checkbox to output the minimal set of non-default properties, or to output a larger set.  Since you are learning the tool, it may be helpful to let the wizard output the larger set so you can see what is available (though that will still not be a 100% complete list).

If you are editing your .btdfproj in Visual Studio, then you should be taking advantage of the full IntelliSense, which includes help text in the popups.  You'll see BTDF items appear inside <ItemGroup> and <PropertyGroup> elements.

Since the Add New Project wizard does not yet allow you to point at your specific assemblies, you need to add the appropriate ItemGroup elements for Orchestrations, Schemas, Transforms, Pipelines, etc. to your .btdfproj.

Thanks,
Tom

Jun 28, 2011 at 4:23 PM

I did create my project via the add new project wizard and it seems to have left out all sorts of crucial info. Does your add-in work with BT 2010 and VS 2010?

How do I fix the error above to point to the correct assembly?

Coordinator
Jun 28, 2011 at 4:36 PM

Yes, BizTalk 2010 and VS 2010 are fully supported.  You indicated earlier that you have no ACH.Components.dll.  So if you don't have any C# helper components, then set <IncludeComponents>false</IncludeComponents>.  If you do have C# helper components, then add an ItemGroup with a child Components element that points to the correct name and location of your assembly, following the same pattern as the Orchestrations ItemGroup that you added yesterday.

 

Jun 28, 2011 at 4:46 PM

Ok, now I get this error:

   Command failed with 1 errors, 0 warnings.  C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk\5.0\BizTalkDeploymentFramework.targets(1212,5): error MSB3073: The command "BTSTask.exe AddResource -Type:BizTalkAssembly -Source:"..\ACH\bin\Debug\ACH.BIZ.dll" -ApplicationName:"ACH" -Options:GacOnAdd,GacOnImport,GacOnInstall" exited with code 1. [C:\Program Files (x86)\Deployment Framework for BizTalk\5.0\Samples\BizTalk2009\ACH\Deployment\Deployment.btdfproj]Done Building Project "C:\Program Files (x86)\Deployment Framework for BizTalk\5.0\Samples\BizTalk2009\ACH\Deployment\Deployment.btdfproj" (Deploy target(s)) -- FAILED.
Build FAILED.

Coordinator
Jun 28, 2011 at 5:14 PM

There's probably another occurrence of the same error within the log that has a real error message.  From this I have no idea.  You can always copy and paste the command line from the error and run it manually at a command prompt to see if you get any more detail.  Check that you don't have any previously deployed artifacts from this solution, that you have assemblies strong-named, etc.  What does ACH.BIZ.dll hold for BizTalk artifacts?

Tom

Jun 29, 2011 at 5:51 PM

I'm sorry, I just found it far easier to take the same BT project, deploy from Visual Studio then manually setup my ports (which I believe I have to do anyway with your add-in). thanks anyway.

Coordinator
Jun 29, 2011 at 6:41 PM

All I can say is that assuming your starting point is a fully functional BizTalk application that has a few assemblies with schemas, orchestrations and maps and a handful of ports, it shouldn't take any more than 15-30 minutes total to have a fully working Deployment Framework project.  The Add New Project wizard generates 95% of what you need.  All you need to do is export a PortBindings.xml from BizTalk Admin and fill in some ItemGroups in the .btdfproj to point to your assemblies.

Tom

Jun 29, 2011 at 6:44 PM

Well it didn't work for me and the test project was the fully functional BT HelloWorld project so there was zero complexity to the BT project itself. I was manually making all sorts of xml additions to your project file and still could not get it to deploy.

While I was able to the same project deployed in 1 minute via VS and then I setup the ports, manually, which took another 5 minutes so I just don't see the advantage.

Coordinator
Jun 29, 2011 at 7:38 PM

You didn't post your .btdfproj contents or describe the exact assembly structure, and along the way I lost the fact that this was the BizTalk SDK HelloWorld sample, which is a single assembly containings schemas, maps and orchestrations together.  If you look at the Deployment Framework's HelloWorld sample, it is the BizTalk SDK HelloWorld sample -- so it's exactly the final state of what you were trying to configure.  Did you ever look at the Deployment Framework's HelloWorld sample?

For a good share of my replies I had lost sight of the fact that you mentioned HelloWorld way at the beginning, so I had no idea what kind of assembly structure you were working on when I was replying.  That explains part of our disconnect.  I also assumed that you had reviewed the Deployment Framework's HelloWorld sample.

A single assembly that contains schemas, maps and orchestrations all together like HelloWorld is a special case.  You will see in the Deployment Framework HelloWorld sample .btdfproj that you must include the ItemGroup only for Schemas, and set IncludeOrchestrations and IncludeTransforms to false, since you don't have separate assemblies for either of those artifact types.

Tom