This project has moved and is read-only. For the latest updates, please go here.

.net components in BTDF

Topics: General Questions, Getting Started/Beginner
Feb 4, 2011 at 6:53 AM

Hi,

if iam having two to three .net projects in my solution do i need to create that many item groups in my .btdfproj file .

--------------------------------------------------------

 <ItemGroup>

<Components Include="Component1.dll">
      <LocationPath>..\$(ProjectName)\bin\$(Configuration)</LocationPath>
    </Components>

</ItemGroup>


<ItemGroup>

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

-------------------------------------------

is the above mentioned is right?

Kindly guide me through this...

Feb 4, 2011 at 11:37 PM

Either way.  What you showed, or combine the <Components> elements into one <ItemGroup>.

Make sure you specify the right LocationPath for each unique DLL.

Thanks,
Tom

Feb 24, 2011 at 5:12 AM

Thanks,

 

In case of a WPF application with in the project solution which file should be given in the item group,since it does not give the .dll file, it gives only the .exe,.exe.manifest,.pdb,.vhost files.

Give me an idea on this.

Thanks,

Mala.

Feb 24, 2011 at 5:38 AM

A WPF GUI application in your BizTalk solution?  Is it being deployed to the BizTalk servers?

Tom

Feb 24, 2011 at 8:43 AM

No,it is not deployed to the Biztalk server ,but it should be build and include in the msi file.

Feb 24, 2011 at 6:31 PM

OK -- if you just need to package random files into the MSI but not do anything special with them, you can use the AdditionalFiles ItemGroup.

Thanks,
Tom

Feb 28, 2011 at 12:06 PM

Our Project Solution consist of a GUI Project along with the Biztalk Projects,will the below script will add the GUI Project to the MSI

 <ItemGroup>
    <AdditionalFiles Include="Project.GUI">
      <LocationPath>..</LocationPath>
    </AdditionalFiles>
  </ItemGroup>


Note:  Project.GUI is a Project folder

ii) Our Project Solution Consist of ESB Websites that are used by the orchestration  for fault handling,My question is that how do i deploy these websites using the BTDF, these are proper virtual websites.

 

Kindly guide me through this concept.

 

Thanks,

Mala.

Feb 28, 2011 at 9:13 PM

Hi Mala,

1) You must include one filename or a wildcard in a single AdditionalFiles element.  I'd expect your LocationPath to be something like ..\Project.GUI\bin\release.  Then you could Include="*.*" (any wildcard) or Include="ProjectGUI.exe" (single filename).  I believe that the wildcard will work, but I have not tested it.

2) If you have a fairly complex website like the ESB portal, then it's possible to have BTDF install it, but it's not necessarily the easiest or best tool for the job.  You usually have to deal with web.config updates and various configuration steps.  BTDF can create an IIS AppPool and vdir for you.  You will need to get the website files packaged into the MSI, so you could try the same thing I mentioned for #1 above.  Or, in a CustomRedist Target in your .btdfproj file, you can use an MSBuild Copy task to copy the web files from your project/staging folder to $(RedistDir).  You use a VDirList ItemGroup to create the IIS artifacts, like this:

  <ItemGroup>
    <VDirList Include="*">
      <Vdir>BizTalkSampleVDir</Vdir>
      <Physdir>..\BizTalkSampleVDir</Physdir>
      <AppPool>BizTalkSample</AppPool>
    </VDirList>
  </ItemGroup>

Thanks,
Tom

Mar 2, 2011 at 12:12 PM

Thanks Tom.

In the Sample BTSHTTPReceive.dll file is placed with in BizTalkSampleVDir, may i know were does this file come from and what will be the alternative to this dll ,in case of my project (esb Portal)whether i could place the web.config file in case of my Solution, iam not able a get a clear picture of working on the virtual directory and web services. As of now i have added the script you have told me

<ItemGroup>
    <VDirList Include="*">
      <Vdir>BizTalkSampleVDir</Vdir>
      <Physdir>..\BizTalkSampleVDir</Physdir>
      <AppPool>BizTalkSample</AppPool>
    </VDirList>
  </ItemGroup>

 

It is giving me file not found exception.

 

Thanks,

Mala.

Mar 3, 2011 at 6:44 AM

Sorry the error is

DeployVDirs:
  Virtual directory 'Project.VDir' created/updated with path 'D:\Project\ESB.Portal'.
  cacls "..\ESB.Portal" /E /G 292066:R
  The data is invalid.
 
C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk\5.0\BizTalkDeploymentFramework.targets(1593,5): error MSB3073: The command "cacls "..\ESB.Portal" /E /G 292066:R" exited with code 13. [D:\Project\Project.Deployment\Project.Deployment.btdfproj]
Done Building Project "D:\Project\Project.Deployment\Project.Deployment.btdfproj" (Deploy target(s)) -- FAILED.

Build FAILED.

"D:\Project\Project.Deployment\Project.Deployment.btdfproj" (Deploy target) (1) ->
(DeployVDirs target) ->
  C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk\5.0\BizTalkDeploymentFramework.targets(1593,5): error MSB3073: The command "cacls "..\ESB.Portal" /E /G 292066:R" exited with code 13. [D:\Project\Project.Deployment\Project.Deployment.btdfproj]

    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:41.00

Mar 3, 2011 at 5:33 PM

I had to play with CACLS to figure out what its problem is.  If you try to edit (/E) the permissions on a folder (not replace them), and that folder is currently inheriting permissions for the same user (292066), then it fails with "The data is invalid."  At least that's the case on WinXP.  Are you getting this from a server deployment or Visual Studio deployment?  The issue is probably that 292066 already has permissions defined on that folder, being inherited from a higher folder, and cacls doesn't like that in edit vs. replace mode.

BTSHTTPReceive.dll is BizTalk's HTTP adapter ISAPI filter.  You don't need it for your website or web service.

It looks like you updated your VDirList to point at ..\ESB.Portal, where you should have all of the website files stored.  Remember from my earlier post that you will need to take some steps to get all of those files packaged into the MSI.

Thanks,
Tom

Mar 4, 2011 at 6:00 AM

 i am trying to do a server deployment. What should i do to overcome this error.

thanks,

Mala.

Mar 8, 2011 at 5:51 AM

I'm surprised that this issue hasn't come up prior to now.  The best workaround is to edit your NTFS permissions through Windows Explorer on the server and remove 292066 from the path D:\Project\ESB.Portal (or D:\ if you are installing the files from the MSI into D:\Project).  You don't want the ESB.Portal folder to inherit any explicit permissions for the user 292066 because that's what makes cacls.exe fail.

Thanks,
Tom

Mar 10, 2011 at 4:54 AM

FYI, the next RC build will include a new property named ModifyNTFSPermissionsOnVDirPaths, which when set to false will bypass the NTFS permission changes to the IIS vdir physical folders.

Tom