Navigation

Search

Categories

 
 

On this page

Error: Compiler for file type '*.btm' failed
Error - "Identifier expected" when the pipeline is compiling
Biztalk AddIn for Reflector

Archive

Blogroll

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

RSS 2.0 | Atom 1.0 | CDF

Send mail to the author(s) E-mail

Total Posts: 21
This Year: 0
This Month: 0
This Week: 0
Comments: 29

Sign In
Pick a theme:

 Tuesday, May 08, 2007
Tuesday, May 08, 2007 4:42:30 AM (GMT Standard Time, UTC+00:00) ( biztalk )

Symptom

You receive the following error message when you try to compile one BizTalk Server 2006 project that contains map files:

Error: Build failed. Compiler for file type '*.btm' failed. Unable to load wrapper:C:\Program Files\Microsoft BizTalk Server 2006\Developer Tools\Mapper Extensions\Microsoft.BizTalk.Security.SSPI.dll.

Resolution

The BizTalk Server 2006 compiler load this assembly from the GAC, therefore to fix this problem you must delete the Microsoft.BizTalk.Sercurity.SSPI.dll assembly from the %biztalk_install%\Developer Tools\Mapper Extensions folder.

 Thursday, August 24, 2006
Thursday, August 24, 2006 1:19:15 AM (GMT Standard Time, UTC+00:00) ( biztalk )

Explanation

The execution mode value defined for some stage in the policy file is None. The value None is not available for execution mode, the available values are FirstMatch or All only.

User Action

All pipeline templates have an associated policy file that determines pipeline’s stages, the number of components allowed per stage, and the execution mode of each stage, among others. To specify that one stage can not execute components, use minimum and maximum occurs instead of execution mode.

To resolve this problem is necessary to edit the pipeline’s policy file. The file name can be found in pipeline’s properties windows in Visual Studio 2005 (see figure below), this policy file is stored in <Biztalk Server Installation Directory>\Developer Tools\Pipeline Policy Files directory.

After the file is opened, you must change the value for execution mode in policy file to All or FirstMatch.

Changing the execution mode value

The execution mode is represented in the policy file by the execMethod attribute; it is in the node /Document/Stages/Stage. Open the pipeline’s policy file and identify where this attribute is with value equals to None and replace it by All or FirstMatch as we shown:

Before:

<?xml version="1.0" encoding="utf-8"?>
<Document xmlns:xsd="" xmlns:xsi="" CategoryId="" FriendlyName="">
  <Stages>
    <Stage Name="Decode" minOccurs="0" maxOccurs="-1" execMethod="None"></Stage>
  </Stages>
</Document>

After:

<?xml version="1.0" encoding="utf-8"?>
<Document xmlns:xsd="" xmlns:xsi="" CategoryId="" FriendlyName="">
  <Stages>
    <Stage Name="Decode" minOccurs="0" maxOccurs="-1" execMethod="All"></Stage>
  </Stages>
</Document>

At last, close and open the pipeline file in Visual Studio 2005 to see these changes replicated. The following is the explanation step by step.

One way, but not the right way

If you want that one stage can not execute any component, you must setting the minimum and maximum occurs to 0 for the specific stage or simply delete it from the policy file. 

CAUTION: if you change any of the following values, the next pipelines files that you create based on the current policy files will be affected.

Delete the stage tag

Identify the specific tag, and delete the complete <Stage /> tag from the policy file.

Setting the minOccurs and maxOccurs to 0

Identify the specific stage and set new values for the minOccurs and maxOccurs attributes to 0:

Before:

<?xml version="1.0" encoding="utf-8"?>
<Document xmlns:xsd="" xmlns:xsi="" CategoryId="" FriendlyName="">
  <Stages>
    <Stage Name="Decode" minOccurs="0" maxOccurs="-1" execMethod="All"></Stage>
  </Stages>
</Document>

After:

<?xml version="1.0" encoding="utf-8"?>
<Document xmlns:xsd="" xmlns:xsi="" CategoryId="" FriendlyName="">
  <Stages>
    <Stage Name="Decode" minOccurs="0" maxOccurs="0" execMethod="All"></Stage>
  </Stages>
</Document>

ps.  this post was published using Windows Live Writer Beta.

 Saturday, June 10, 2006
Saturday, June 10, 2006 8:03:17 PM (GMT Standard Time, UTC+00:00) ( biztalk )

Gilles has developer an addin for Reflector that allows you to list all BizTalk artifacts contained in an assembly and extract them.

Read more in BizTalk AddIn for Reflector