New Post: DeploySchemas: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
New Post: BTDF Build/Deploy: EXEC : error : Failed to add resource(s).
DeploySchemas:
BTSTask.exe AddResource -Type:BizTalkAssembly -Source:"..\SCHEMAS\bin\Debug\Aoc.Dx.Get.Services.SCHEMAS.dll" -ApplicationName:"Aoc.Dx.Get.Services" -Options:GacOnAdd,GacOnImport,GacOnInstall
Microsoft (R) BizTalk Application Deployment Utility Version 3.9.469.0
Copyright (c) 2010 Microsoft Corporation. All rights reserved.
Information: Adding resource (-Type="System.BizTalk:BizTalkAssembly" -Luid="Aoc.Dx.Get.Services.Schemas, Version=1.0.0.0, Culture=neutral, PublicKeyToken=acb921476099768e") to application "Aoc.Dx.Get.Services"...
Serialized BizTalk assembly "Aoc.Dx.Get.Services.Schemas, Version=1.0.0.0, Culture=neutral, PublicKeyToken=acb921476099768e" from "..\SCHEMAS\bin\Debug\Aoc.Dx.Get.Services.SCHEMAS.dll".
Information: Validating resources (count=1)...
- Validating resource (-Type="System.BizTalk:BizTalkAssembly" -Luid="Aoc.Dx.Get.Services.Schemas, Version=1.0.0.0, Culture=neutral, PublicKeyToken=acb921476099768e")...
Information: Performing change requests...
Information: Calling BeginTypeChangeRequest for all selected resource types...
PerformingBeginChangeRequest
Adding resource (-Type="System.BizTalk:BizTalkAssembly" -Luid="Aoc.Dx.Get.Services.Schemas, Version=1.0.0.0, Culture=neutral, PublicKeyToken=acb921476099768e") to store.
Information: PerformingEndChangeRequestsWithRollBack -
Performing EndTypeChangeRequest for resource type "System.BizTalk:BizTalkAssembly".
EXEC : error : Failed to add resource(s). [C:\P4_Workspaces\ESBDataExchange\Person\Aoc.Dx.Get.Services\Deployment\Deployment.btdfproj]
Resource (-Type="System.BizTalk:BizTalkAssembly" -Luid="Aoc.Dx.Get.Services.Schemas, Version=1.0.0.0, Culture=neutral, PublicKeyToken=acb921476099768e") already in store.
1) Use BTSTask's overwrite flag or
2) Set redeploy flag to true in BizTalk Project or
3) Click overwrite all checkbox in Admin MMC
to update if the resource exists in the specified target application "Aoc.Dx.Get.Services".
Overwrite flag will be ignored if the resource is associated with another application.
There is no such dll in the GAC ("already in the store")
New Post: BTDF Build/Deploy: EXEC : error : Failed to add resource(s).
New Post: BTDF Build/Deploy: EXEC : error : Failed to add resource(s).
No…I checked your previous responses where you diagnosed specification of the same DLL in different item groups in Deployment.btdproj. Nothing like that here:
Here is Deployment.btdproj:
<?xmlversion="1.0"encoding="utf-8"?>
<!--
Deployment Framework for BizTalk 5.0
Copyright (C) 2004-2012 Thomas F. Abraham and Scott Colestock
-->
<Projectxmlns="http://schemas.microsoft.com/developer/msbuild/2003"DefaultTargets="Installer"ToolsVersion="4.0">
<PropertyGroup>
<ConfigurationCondition="'$(Configuration)' == ''">Release</Configuration>
<PlatformCondition="'$(Platform)' == ''">x86</Platform>
<SchemaVersion>1.0</SchemaVersion>
<ProjectName>Aoc.Dx.Get.Services</ProjectName>
<ProjectVersion>1.0</ProjectVersion>
<IncludeOrchestrations>True</IncludeOrchestrations>
<IncludeTransforms>True</IncludeTransforms>
<IncludeDeploymentTest>True</IncludeDeploymentTest>
<SkipIISReset>True</SkipIISReset>
<IncludeSSO>False</IncludeSSO>
<UsingMasterBindings>True</UsingMasterBindings>
<RequireXmlPreprocessDirectives>False</RequireXmlPreprocessDirectives>
</PropertyGroup>
<PropertyGroup>
<!-- Properties related to building an MSI for server deployments-->
<!-- 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-->
<!-- This allows the new MSI to automatically uninstall (not undeploy!) the old MSI and install the new one. -->
<ProductVersion>1.0.4</ProductVersion>
<ProductId>c4734394-ff5d-41c1-96cf-aa46ee8d9f68</ProductId>
<!-- BizTalk App Version Upgrade-->
<ProductName>Aoc.Dx.Get.Services for BizTalk</ProductName>
<Manufacturer>AOC</Manufacturer>
<PackageDescription>Aoc.Dx.Get.Services</PackageDescription>
<PackageComments>Aoc.Dx.Get.Services</PackageComments>
<!-- NEVER change the ProductUpgradeCode.-->
<ProductUpgradeCode>92cf86fc-5717-4574-82dc-b16e44a15d84</ProductUpgradeCode>
</PropertyGroup>
<!-- Under TFS Team Build, set CustomizableOutDir property to true in TFS 2005/2008/2010 UpgradeTemplate.-->
<!-- With a workflow build, copy the default template then modify the MSBuild task for the solution build. Set OutDir to blank and -->
<!-- CommandLineArguments to String.Format("/p:SkipInvalidConfigurations=true;TeamBuildOutDir=""{0}"" {1}", BinariesDirectory, MSBuildArguments). -->
<PropertyGroupCondition="'$(Configuration)' == 'Debug'">
<DeploymentFrameworkTargetsPath>$(MSBuildExtensionsPath)\DeploymentFrameworkForBizTalk\5.0\</DeploymentFrameworkTargetsPath>
<OutputPathCondition="'$(TeamBuildOutDir)' == ''">bin\Debug\</OutputPath>
<OutputPathCondition="'$(TeamBuildOutDir)' != ''">$(TeamBuildOutDir)</OutputPath>
<DeployPDBsToGac>false</DeployPDBsToGac>
</PropertyGroup>
<PropertyGroupCondition="'$(Configuration)' == 'Release'">
<DeploymentFrameworkTargetsPath>$(MSBuildExtensionsPath)\DeploymentFrameworkForBizTalk\5.0\</DeploymentFrameworkTargetsPath>
<OutputPathCondition="'$(TeamBuildOutDir)' == ''">bin\Release\</OutputPath>
<OutputPathCondition="'$(TeamBuildOutDir)' != ''">$(TeamBuildOutDir)</OutputPath>
<DeployPDBsToGac>false</DeployPDBsToGac>
</PropertyGroup>
<PropertyGroupCondition="'$(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>
<PropsFromEnvSettings Include="SsoAppUserGroup;SsoAppAdminGroup" />
</ItemGroup-->
<ItemGroupCondition="'$(Configuration)' == 'Debug'">
<!-- We name our host(s) explicitly to avoid having the framework bounce them all.-->
<BizTalkHostsInclude="BizTalkServerApplication" />
</ItemGroup>
<ItemGroupCondition="'$(Configuration)' == 'Release'">
<!-- We name our host(s) explicitly to avoid having the framework bounce them all.-->
<BizTalkHostsInclude="BizTalkServerApplication" />
</ItemGroup>
<ItemGroupCondition="'$(Configuration)' == 'Server'">
<!-- We name our host(s) explicitly to avoid having the framework bounce them all.-->
<BizTalkHostsInclude="BizTalkServerApplication" />
</ItemGroup>
<!-- !!! TODO !!!-->
<!-- Add ItemGroup elements that contain one or more Schemas, Orchestrations, Transforms, etc. elements that describe -->
<!-- the specific artifacts in your solution that need to be deployed. Use IntelliSense as a guide. -->
<ItemGroup>
<SchemasInclude="Aoc.Dx.Get.Services.SCHEMAS.dll">
<LocationPath>..\SCHEMAS\bin\$(Configuration)</LocationPath>
</Schemas>
</ItemGroup>
<ItemGroup>
<TransformsInclude="Aoc.Dx.Get.Services.MAPS.dll">
<LocationPath>..\MAPS\bin\$(Configuration)</LocationPath>
</Transforms>
</ItemGroup>
<ItemGroup>
<OrchestrationsInclude="Aoc.Dx.Get.Services.ORCHESTRATIONS.dll">
<LocationPath>..\ORCHESTRATIONS\bin\$(Configuration)</LocationPath>
</Orchestrations>
</ItemGroup>
<ItemGroup>
<DeploymentTestInclude="DeploymentVerification.Tests.dll">
<LocationPath>..\DeploymentVerification.Tests\bin\$(Configuration)</LocationPath>
</DeploymentTest>
</ItemGroup>
<!-- The app.config file is set in VS to "Copy always" to the output directory, and here it is included in the MSI. Below it gets preprocessed to merge-in the environment-specific settings for the deployment verification tests.-->
<ItemGroup>
<AdditionalFilesInclude="app.config">
<LocationPath>..\DeploymentVerification.Tests\bin\$(Configuration)</LocationPath>
</AdditionalFiles>
</ItemGroup>
<ItemGroup>
<FilesToXmlPreprocessInclude="app.config">
<LocationPath>..\DeploymentVerification.Tests\bin\$(Configuration)</LocationPath>
<OutputFilename>DeploymentVerification.Tests.dll.config</OutputFilename>
</FilesToXmlPreprocess>
</ItemGroup>
<!-- !!! TODO !!!-->
<ImportProject="$(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.
-->
<TargetName="CustomRedist">
</Target>
<TargetName="CustomFinalDeploy"Condition="'$(Configuration)' == 'Server'">
<DeleteFiles="$(PortBindings)"TreatErrorsAsWarnings="false" />
</Target>
</Project>
New Post: BTDF Build/Deploy: EXEC : error : Failed to add resource(s).
Thanks,
Tom
New Post: Undeploy application
I am implementing BTDF auto build and deploy.
Can I undeploy application without running the shortcut in Start menu? I would like to put it into our powershell scripts.
I have tried to stop application and than uninstall by BTSAdmin.exe but our applications are referenced and that didnt work. With undeploying in BTDF it worked, but I cannot run it in GUI of windows when using auto deploy thats why script is welcome.
Thanks for help!
New Post: Undeploy application
This is discussed in the documentation. I also recommend Randy Paulo's PowerShell script for automated deployment.
Thanks,
Tom
New Post: Undeploy application
I am already using script by Randy Paulo but it does not do undeploy as well.
Do you think it is enough to run deploy by using BTDF on top of installed application, without undeploying it? Sort of overwrite?
New Post: Undeploy application
To your question on "is it enough to deploy on top" -- no. On the command-line, you just need to change the target from Deploy to Undeploy, and do not include the SkipUndeploy property. After the app is undeployed, you can either script uninstall the MSI and then run Randy's script, or if you are updating the MSI properties in the .btdfproj, you can just install the new MSI and it will do an upgrade, then run Randy's script.
Thanks,
Tom
New Post: Undeploy application
I will try to call it with undeploy target and leave out skipundeploy.
Just one more question: will it also unenlist all send ports/ receive locations for each application that I call it with during undeploy?
New Post: Undeploy application
Tom
New Post: BTDF Build/Deploy: EXEC : error : Failed to add resource(s).
New Post: BTDF Build/Deploy: EXEC : error : Failed to add resource(s).
Thanks,
Tom
New Post: BTDF Build/Deploy: EXEC : error : Failed to add resource(s).
Thanks for all your help…turns out because I didn’t provide application names to my projects, the .dlls were deployed to the default application… I was confused because I didn’t see the existing .dlls in the GAC_MSIL (?).
Thank you for your indulgence…
M
New Post: Undeploy application
Lets say we have application which was deployed from TFS build and deployed to the server. Than new build will be queued and compiled. Is it problem if I will call MSBuild with BTDF project file that is not the one which deployed the application, but instead I will call MSBuild with latest BTDF project? I am not familiar how framework is removing resources but I think that it can be problem if the deployed build contained .dll which the other didnt.
New Post: Undeploy application
As I mentioned earlier, you can combine the old MSI uninstall and new MSI install into one upgrade step if you always update the MSI properties within the .btdfproj.
Thanks,
Tom
New Post: Create Application Pool for Virtual Directory
I have started using BTDF for my biztalk deployment and i found it quite powerful.
1) I want to use BTDF to deploy virtual Directories along with BizTalk artifacts.Also i want to create application Pool if it is not present.
However, i couldn't find anything which can point me in right direction?
2) I want to have App Pool name dynamic using Settingfile. I tried that, but while deploying the solution, BTDF takes AppPool as String instead of replacing it with value from setting file.
I used following:
<VDirList Include="*">
<Vdir>My.Vdir</Vdir>
<Physdir>..\Configuration\VirtualDirectory\My.Vdir</Physdir>
<AppPool>${MyAppPool}</AppPool>
<AppPoolNetVersion>4.0</AppPoolNetVersion>
</VDirList>
</ItemGroup><ItemGroup>
<PropsFromEnvSettings Include="SsoAppUserGroup;SsoAppAdminGroup;MyAppPool" />
</ItemGroup>
However IIS show "${MyAppPool} as Application Pool for my Virtual Directory.
Please help.
Thanks
Deepak Sanghi
New Post: Store deployment configuration settings in SSO
I've read through the posts and documentation about SSO and it only mentions about storing runtime configurations into the SSO Store. But I did not see anything about storing deployment configurations settings i.e. use the SSO Store to maintain the BizTalk bindings variables. Does BTDF supports this option? Can the deployment pick-up the binding variables from SSO Store instead of from the SettingsFileGenerator.xml spreadsheet?
We found that on our current project we maintain a lot of variables that are common to most BizTalk Applications. We are looking for a centralised management of Btdf BizTalk binding variables (and in particular for the passwords). SSO Store stands out as the perfect candidate for this.
Would this require a customisation of the EnvironmentSettingsExporter.exe?
Thanks a lot
Vincent Rouet
New Post: Store deployment configuration settings in SSO
Sorry, no, SSO is not a supported source for the bindings file variables. EnvironmentSettingsExporter.exe creates the environment-specific XML settings files, one of which is picked up and merged with PortBindingsMaster.xml by XmlPreprocess.exe. Rather than customize EnvironmentSettingsExporter, if you want to go this route then I suggest writing your own command-line app. You can just store the EXE in a Dependencies folder within your solution folder, and include it in the MSI via the AdditionalFiles ItemGroup or just copying it within the CustomRedist target (as in the Advanced sample app). You just need to have this custom app produce the same environment-specific settings XML file format.
You can easily tie any custom step(s) into the process with a custom target, similar to:
<Target Name="ExportSettingsFromSSO" AfterTargets="ExportSettings">
<Exec Command="..\MyExporter.exe" />
</Target>
Thanks,Tom
New Post: Create Application Pool for Virtual Directory
If you use a variable name from settings file in VDIRList , it is not replaced by the value while creating Virtual directory. I fixed it in this way. Here I use website id and application pool from settings file:
<Target Name="DeployVirtualDirectory">
<CreateVirtualDirectory MetabasePath="IIS://localhost/w3svc/$(IISWebSiteID)/Root" Name="%(VDirList.Vdir)" Path="$(MSBuildProjectDirectory)\%(VDirList.Physdir)" />
</Target><Target Name="DeployVDirsIIS6Plus" Condition="'$(IisMajorVersion)' != '5'">
<!-- Create app pool and place vdir in app pool for win2003+ -->
<AssignVirtualDirectoryToAppPool
MetabasePath="IIS://localhost/w3svc/$(IISWebSiteID)/Root" VDirName="%(VDirList.Vdir)" AppPoolName="$(MyAppPool)" />
<ConfigureAppPool
MetabasePath="IIS://localhost/w3svc/$(IISWebSiteID)/Root" AppPoolName="$(MyAppPool)" UserName="$(VDIR_UserName)" Password="$(VDIR_UserPass)"
Condition="'$(VDIR_UserPass)' != ''" />
<Message Text="SKIPPING APP POOL IDENTITY CONFIGURATION because the property VDIR_UserPass is empty." Condition="'$(VDIR_UserPass)' == ''" />
<!-- Set the .NET runtime version on the AppPool if AppPoolNetVersion was specified; IIS 7.0+ only -->
<Exec Command=""$(AppCmd)" set apppool /apppool.name:"$(MyAppPool)" /managedRuntimeVersion:"%(VDirList.AppPoolNetVersion)" /managedPipelineMode:Integrated"
Condition="'$(IisMajorVersion)' != '6' and '$(Configuration)' == 'Server' and '%(VDirList.AppPoolNetVersion)' != ''" />
</Target>You also need to add ,
<PropsFromEnvSettings Include="SsoAppUserGroup;SsoAppAdminGroup;IISWebSiteID;MyAppPool" />