Wix bootstrapper having trouble with an MSI requiring SelfReg with VC++ 2005 - wix

So I have a Wix bootstrapper that installs VC++ 2005 (x86) Redistributable among other things and also installs a 3rd party MSI that keeps failing on a failed SelfReg of one of its dlls. When I install VC++ 2005 (x86) outside of the bootstrapper everything works fine and the bootstrapper chain skips the VC++ install and the installs the MSI requiring the SelfRegs without issue. However, when I have my bootstrapper install the VC++ Redistributable before the MSI it depends on it fails because the SelfRegs fail.
Now if I were to guess the issue may have something to do with environment variables not getting refreshed during the bootstrapper chain and thus a reboot could fix it. I would prefer an alternative solution and was wondering if someone else may have an idea of what's happening and give me an alternative.
Update:
So when I hit the point of failure, I can confirm that VC++ 2005 (x86) is installed in both the log files, the registry key at HKLM/SOFTWARE/Microsoft/DevDiv/VC/8.0/RED/1033/Install, and manifest files in C:\Windows\WinSxS\Manifests. When I run sxstrace while trying to self-register the DLLs manually with Regsvr32.exe I get this log.
=================
Begin Activation Context Generation.
Input Parameter:
Flags = 0
ProcessorArchitecture = Wow32
CultureFallBacks = en-US;en
ManifestPath = C:\Program Files (x86)\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\PersonalCategory.dll
AssemblyDirectory = C:\Program Files (x86)\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\
Application Config File =
-----------------
INFO: Parsing Manifest File C:\Program Files (x86)\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\PersonalCategory.dll.
INFO: Manifest Definition Identity is (null).
INFO: Reference: Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.4053"
INFO: Reference: Microsoft.VC80.ATL,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.4053"
INFO: Resolving reference Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.4053".
INFO: Resolving reference for ProcessorArchitecture WOW64.
INFO: Resolving reference for culture Neutral.
INFO: Applying Binding Policy.
INFO: No publisher policy found.
INFO: No binding policy redirect found.
INFO: Begin assembly probing.
INFO: Did not find the assembly in WinSxS.
INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC80.CRT\8.0.50727.4053__1fc8b3b9a1e18e3b\Microsoft.VC80.CRT.DLL.
INFO: Did not find manifest for culture Neutral.
INFO: End assembly probing.
INFO: Resolving reference for ProcessorArchitecture x86.
INFO: Resolving reference for culture Neutral.
INFO: Applying Binding Policy.
INFO: Find publisher policy at C:\Windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.8428_none_516ac2a30f4be7a6.manifest
INFO: Publisher Policy redirected assembly version.
INFO: Post policy assembly identity is Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.8428".
INFO: Begin assembly probing.
INFO: Attempt to probe manifest at C:\Windows\WinSxS\manifests\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.8428_none_d08a11e2442dc25d.manifest.
INFO: Manifest found at C:\Windows\WinSxS\manifests\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.8428_none_d08a11e2442dc25d.manifest.
INFO: End assembly probing.
INFO: Resolving reference Microsoft.VC80.CRT.mui,language="*",processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.8428".
INFO: Resolving reference for ProcessorArchitecture WOW64.
INFO: Resolving reference for culture en-US.
INFO: Applying Binding Policy.
INFO: No publisher policy found.
INFO: No binding policy redirect found.
INFO: Begin assembly probing.
INFO: Did not find the assembly in WinSxS.
INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC80.CRT.mui\8.0.50727.8428_en-US_1fc8b3b9a1e18e3b\Microsoft.VC80.CRT.mui.DLL.
INFO: Did not find manifest for culture en-US.
INFO: End assembly probing.
INFO: Resolving reference for culture en.
INFO: Applying Binding Policy.
INFO: No publisher policy found.
INFO: No binding policy redirect found.
INFO: Begin assembly probing.
INFO: Did not find the assembly in WinSxS.
INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC80.CRT.mui\8.0.50727.8428_en_1fc8b3b9a1e18e3b\Microsoft.VC80.CRT.mui.DLL.
INFO: Did not find manifest for culture en.
INFO: End assembly probing.
INFO: Resolving reference for ProcessorArchitecture x86.
INFO: Resolving reference for culture en-US.
INFO: Applying Binding Policy.
INFO: No publisher policy found.
INFO: No binding policy redirect found.
INFO: Begin assembly probing.
INFO: Did not find the assembly in WinSxS.
INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC80.CRT.mui\8.0.50727.8428_en-US_1fc8b3b9a1e18e3b\Microsoft.VC80.CRT.mui.DLL.
INFO: Did not find manifest for culture en-US.
INFO: End assembly probing.
INFO: Resolving reference for culture en.
INFO: Applying Binding Policy.
INFO: No publisher policy found.
INFO: No binding policy redirect found.
INFO: Begin assembly probing.
INFO: Did not find the assembly in WinSxS.
INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC80.CRT.mui\8.0.50727.8428_en_1fc8b3b9a1e18e3b\Microsoft.VC80.CRT.mui.DLL.
INFO: Did not find manifest for culture en.
INFO: End assembly probing.
INFO: Resolving reference Microsoft.VC80.ATL,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.4053".
INFO: Resolving reference for ProcessorArchitecture WOW64.
INFO: Resolving reference for culture Neutral.
INFO: Applying Binding Policy.
INFO: No publisher policy found.
INFO: No binding policy redirect found.
INFO: Begin assembly probing.
INFO: Did not find the assembly in WinSxS.
INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC80.ATL\8.0.50727.4053__1fc8b3b9a1e18e3b\Microsoft.VC80.ATL.DLL.
INFO: Did not find manifest for culture Neutral.
INFO: End assembly probing.
INFO: Resolving reference for ProcessorArchitecture x86.
INFO: Resolving reference for culture Neutral.
INFO: Applying Binding Policy.
INFO: No publisher policy found.
INFO: No binding policy redirect found.
INFO: Begin assembly probing.
INFO: Did not find the assembly in WinSxS.
INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC80.ATL\8.0.50727.4053__1fc8b3b9a1e18e3b\Microsoft.VC80.ATL.DLL.
INFO: Attempt to probe manifest at C:\Program Files (x86)\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\Microsoft.VC80.ATL.DLL.
INFO: Attempt to probe manifest at C:\Program Files (x86)\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\Microsoft.VC80.ATL.MANIFEST.
INFO: Attempt to probe manifest at C:\Program Files (x86)\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\Microsoft.VC80.ATL\Microsoft.VC80.ATL.DLL.
INFO: Attempt to probe manifest at C:\Program Files (x86)\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\Microsoft.VC80.ATL\Microsoft.VC80.ATL.MANIFEST.
INFO: Did not find manifest for culture Neutral.
INFO: End assembly probing.
ERROR: Cannot resolve reference Microsoft.VC80.ATL,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.4053".
ERROR: Activation Context generation failed.
End Activation Context Generation.
Also snapped this pick on doing a Dependency Walker on the dll.

There could be few other reasons such as some dependency missing or the user context under which the bootstrapper executes is different from the working scenario.
The first thing i would do here is to inspect the windows installer logs.
To generate , windows installer logs, you can follow the following link:
http://blogs.msdn.com/b/astebner/archive/2005/03/29/help-me-help-you-if-you-have-setup-bugs.aspx
-How are you executing your installer outside of the bootstrapper?
Are you installing them in silent mode? Its important to do this as the bootstrapper installs the msi's in silent mode.
Are you installing them over an elevated command prompt?
I am asking the above questions as you state that the installation works outside of the bootstrapper.
-Once you hit the error with Self regs, do you get an error message?
If yes, instead of clicking on Ok and allowing the installation to roll back, can you go to the folder where the files are copied. Try to register the dll manually from the command prompt and see if you can register the dll.
if none of the above things work, please post a log file from the installation and then we can take it forward.

Related

Mule can't start as Window Service

When i start mule as window service, i check log and get this error.
Error message:
Mule installed.
--> Wrapper Started as Service
Launching a JVM...
Starting the Mule Container...
Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
Copyright 1999-2006 Tanuki Software, Inc. All Rights Reserved.
WARNING - Unable to load the Wrapper's native library because none of the
following files:
wrapper-windows-x86-64.dll
wrapper.dll
could be located on the following java.library.path:
D:\Programs\mule-standalone-3.9.0\bin%LD_LIBRARY_PATH%
D:\Programs\mule-standalone-3.9.0\lib\boot
Please see the documentation for the wrapper.java.library.path
configuration property.
System signals will not be handled correctly.
Error in WrapperListener.start callback. java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no jansi in java.library.path, C:\windows\system32\config\systemprofile\AppData\Local\Temp\jansi-64.dll (The system cannot find the path specified)]
java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no jansi in java.library.path, C:\windows\system32\config\systemprofile\AppData\Local\Temp\jansi-64.dll (The system cannot find the path specified)]
at org.fusesource.hawtjni.runtime.Library.doLoad(Library.java:184)
at org.fusesource.hawtjni.runtime.Library.load(Library.java:142)
Resolved issue by creating the 'Temp' folder.
I've been testing with jdk 1.8.0_45.
C:\Windows\system32\config\systemprofile\AppData\Local\Temp

how to inject sonar-project.properties into msbuild in sonarqube

I have a c-sharp solution (say sample.sln), but to run sonarqube analysis, as per the docs, i have run the following command:
".\3rdparty\sonarqube\msbuild\SonarScanner.MSBuild.exe" begin /k:"comm"
/n:"comm" /v:"2.0"
/d:sonar.cs.dotcover.reportsPaths=
"D:\Jenkins\workspace\comm\TEST\CoverageReport.html"
/d:sonar.host.url="http://101.149.24.128"
/d:sonar.sources="D:\Jenkins\workspace\comm\source\*.cs"
msbuild comm.sln /t:Rebuild
".\3rdparty\sonarqube\msbuild\SonarScanner.MSBuild.exe" end
but getting this error :
SONAR_SCANNER_OPTS is not configured. Setting it to the default value of -Xmx1024m
Calling the SonarQube Scanner...
INFO: Scanner configuration file: D:\Jenkins\workspace\comm\3rdparty\sonarqube\msbuild\sonar-scanner-3.2.0.1227\bin\..\conf\sonar-scanner.properties
INFO: Project root configuration file: D:\Jenkins\workspace\comm\.sonarqube\out\sonar-project.properties
INFO: SonarQube Scanner 3.2.0.1227
INFO: Java 1.8.0_151 Oracle Corporation (64-bit)
INFO: Windows Server 2016 10.0 amd64
INFO: SONAR_SCANNER_OPTS=-Xmx1024m
INFO: User cache: C:\Users\jenkins\.sonar\cache
INFO: SonarQube server 6.7.5
INFO: Default locale: "en_US", source code encoding: "windows-1252" (analysis is platform dependent)
INFO: Publish mode
INFO: Load global settings
INFO: Load global settings (done) | time=278ms
INFO: Server id: 7950B4AD-AWYRoMpRpurWib7aM-qP
INFO: User cache: C:\Users\jenkins\.sonar\cache
INFO: Load plugins index
INFO: Load plugins index (done) | time=84ms
INFO: Process project properties
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 13.565s
INFO: Final Memory: 6M/84M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarQube Scanner execution
ERROR: Unable to load component class org.sonar.scanner.scan.ProjectLock
ERROR: Caused by: Unable to load component class org.sonar.scanner.scan.DefaultInputModuleHierarchy
ERROR: Caused by: Unable to load component class org.sonar.scanner.scan.ProjectBuildersExecutor
ERROR: Caused by: Unable to load component class com.talanlabs.sonar.plugins.gitlab.CommitProjectBuilder
ERROR: Caused by: Unable to load component class com.talanlabs.sonar.plugins.gitlab.GitLabPluginConfiguration
ERROR: Caused by: Unable to load component class org.sonar.scanner.scan.MutableProjectSettings
ERROR: Caused by: Unable to load component class org.sonar.api.batch.bootstrap.ProjectReactor
**ERROR: Caused by: Illegal char <*> at index 43: D:\Jenkins\workspace\comm\source\*.cs**
ERROR:
The SonarQube Scanner did not complete successfully
so i thought of adding, all the sonar related properties into sonar-project.properties, and kept inside the project root folder, and ran the analysis. but got an error below.
sonar-project.properties files are not understood by the SonarScanner for MSBuild. Remove those files from the following folders: D:\Jenkins\workspace\comm
have looked at this question
what i could infer from this post is, we cannot set sonar-project.properties for msbuild ? is it ?
So then how to do include/exclude files/folders from code coverage in sonar analysis ? I don't have admin access, to set administrative global exclusions
Any help ?
P.S using sonarqube LTS 6.7.6

Trying to Use MSBuild SonarQube and unable to make it work

I have been using SonarQube for code analyzing at a basic level however now I would like to measure the code against FX-COP rules. Hence I am attempting to use MSBuild SonarQube scanner. I read the documentation thoroughly and have setup my project likewise however when I execute it gives me error.
Below is the extract from the log:
MSBuild SonarQube Runner Bootstrapper 1.0.2.0
Default properties file was found at C:\....\1c36691bf5270463\SonarQube.Analysis.xml
Loading analysis properties from C:\....\1c36691bf5270463\SonarQube.Analysis.xml
Pre-processing started.
Preparing working directories...
Checking for updates...
MSBuild SonarQube Runner Pre-processor 1.0.2.0
Loading analysis properties from C:\...\1c36691bf5270463\SonarQube.Analysis.xml
Updating build integration targets...
Fetching analysis configuration settings...
Generating rulesets...
Pre-processing succeeded.
Microsoft (R) Build Engine version 12.0.21005.1
[Microsoft .NET Framework, version 4.0.30319.34209]
Copyright (C) Microsoft Corporation. All rights reserved.
Building the projects in this solution one at a time. To enable parallel build,
please add the "/m" switch.
Build started 11/20/2015 1:46:41 PM.
Project "C:\Project1.sln" on node 1 (rebuild target(s)).
ValidateSolutionConfiguration:
Building solution configuration "Debug|Any CPU".
Build succeeded.
9 Warning(s)
0 Error(s)
Time Elapsed 00:01:07.86
MSBuild SonarQube Runner Bootstrapper 1.0.2.0
Default properties file was found at C:\...\1c36691bf5270463\SonarQube.Analysis.xml
Loading analysis properties from C:\...\1c36691bf5270463\SonarQube.Analysis.xml
Post-processing started.
MSBuild SonarQube Runner Post-processor 1.0.2.0 gives several warnings similar to one below:
WARNING: File is not under the project directory and cannot currently be analysed
by SonarQube.
File: C:\Users\...\AppData\Local\Temp\2\.NETFramework,Version=v4.0.AssemblyAttributes.cs,
project: C:\...\1c36691bf5270463\SOURCE\x\y.csproj**
Calling the sonar-runner:
SONAR_RUNNER_OPTS is not configured. Setting it to the default value of -Xmx1024m
C:\...\1c36691bf5270463\.sonarqube\bin\sonar-runner\bin\..
SonarQube Runner 2.4
Java 1.8.0_51 Oracle Corporation (64-bit)
Windows Server 2008 R2 6.1 amd64
SONAR_RUNNER_OPTS=-Xmx1024m
INFO: Error stacktraces are turned on.
INFO: Runner configuration file: C:\...\1c36691bf5270463\.sonarqube\bin\sonar-runner\bin\..\conf\sonar-runner.properties
INFO: Project configuration file: C:\TeamCity\buildAgent\work\1c36691bf5270463\.sonarqube\out\sonar-project.properties
INFO: Default locale: "en_US", source code encoding: "UTF-8"
INFO: Work directory: C:\...\1c36691bf5270463\.sonarqube\out\.sonar
INFO: SonarQube Server 5.1.1
13:47:51.150 INFO - Load global repositories
13:47:51.743 INFO - Load global repositories (done) | time=593ms
13:47:51.758 INFO - Server id: 20151120125423
13:47:51.758 INFO - User cache: C:\...\cache
13:47:51.758 INFO - Install plugins
13:47:51.836 INFO - Install JDBC driver
.
.
.
13:47:55.518 INFO - ------------- Scan file1
13:47:55.534 INFO - Load module settings
13:47:55.658 INFO - Load rules
13:47:56.017 INFO - Base dir: C:\...\1c36691bf5270463\SOURCE\xxx
13:47:56.017 INFO - Working dir: C:\...\1c36691bf5270463\.sonarqube\out\.sonar\AC1_AC1_497EBFF2-C710-4843-8263-F534AF803D3E
13:47:56.017 INFO - Source encoding: UTF-8, default locale: en_US
13:47:56.532 INFO - Quality profile for cs: Sonar way
13:48:00.635 INFO - Sensor org.sonar.plugins.csharp.CSharpFxCopProvider$CSharpFxCopSensor#73c82ec1
INFO: -----------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: -----------------------------------------------------------------
Total time: 10.156s
Final Memory: 16M/306M
INFO: -----------------------------------------------------------------
13:48:00.791 Creating a summary markdown file...
Press any key to continue . . .
You need to run all your commands in a Developer Command Prompt for Visual Studio 2013 or higher and:
use at least MSBuild 12.0
have .NET 4.5.2+ installed
You have this error because the FxCop Results are not generated.
Do you see in the MSBuild's logs, execution of FxCop? This is visible inside the RunCodeAnalysis section of MSBuild's logs.
You need to run this from command line and use the "-X" flag on your command, this will give you verbose debugging, I would highly reccomend doing the following for troubleshooting.
sonar-runner.exe <arg> <arg> -X > sonar-runnerLog.txt
Then read or dump that log back here. either way you'll know a lot more about what the actual problem is.
You can get Visual Studio Express 2013 (or 15) for free and both of those come with their respective developer command prompts.

Java Servlet - Null Pointer Exception & .jar not loaded

So my situation is a bit odd because I am looking at a server with no access to the source code. Everything regarding the servlets has worked fine up until now, but there is this sudden, spontaneous error that has come up regarding one of the Java servlets having a null pointer exception.
Here is the error log:
INFO: Added header: Cache-Control: no transform
8-Apr-2014 10:57:16 AM org.apache.catalina.core.ApplicationContext log
INFO: Added header: Cache-Control: no cache
8-Apr-2014 10:57:16 AM org.apache.catalina.core.ApplicationContext log
INFO: Attempted context: null
8-Apr-2014 10:57:16 AM org.apache.catalina.core.ApplicationContext log
INFO: Request URI: /public_stage//def.jsp
8-Apr-2014 10:57:16 AM org.apache.catalina.core.ApplicationContext log
INFO: Real path: /opt/apps/tomjet/webapps/public_stage/def.jsp
8-Apr-2014 10:57:16 AM org.apache.catalina.core.ApplicationContext log
INFO: servlet context: null
8-Apr-2014 1:35:02 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet PushServletMAG threw exception
java.lang.NullPointerException
at com.openwave.wappush.Pusher.netSendRequest(Pusher.java:312)
at com.openwave.wappush.Pusher.send(Pusher.java:230)
at ca.test.servlet.ExtendedPush.pushServiceIndication(ExtendedPush.java:105)
at ca.test.servlet.CDMAPushServlet.doPost(CDMAPushServlet.java:180)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:419)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:619)
However going over to the catalina file I notice that it states that in a few locations, it is trying to validate .jar files, and that there are servlet.jar files not being loaded in the WEB-INF/lib directory.
Here is an example of a line with a certain location:
8-Apr-2014 2:02:00 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/opt/apps/tomjet/webapps/wapMIG/WEB-INF/lib/servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
Overall I am quite baffled by this problem as in terms of user interaction with the source code there was absolutely none as no one has access to it. It was just so sudden and spontaneous.
Any ideas/sources that could possibly help me with this problem? Much appreciated.
The error is the jar servlet-api.jar in your WEB-INF/folder, the container provide the servlet-api.jar and it cause the problem in deployment, you need to remove this jar from your lib folder.
You could need this jar to compile your project, so you must configure the project to use this jar in your IDE, in eclipse you can add it in the Java Build Path as an external jar, but I recommend you to enable the Web Dynamic Project Facet and configuring tomcat as your runtime enviroment. (Project -> Properties -> Project Facets)

MSDeploy - Can not deploy using the batch file generated by msbuild

With visual studio 2012 set up projects has been discontinued. I was finding a way to automatically do a web deploy using team city and I stumbled across this fantastic article
http://www.troyhunt.com/2010/11/you-deploying-it-wrong-teamcity.html
I was able to create a package for my website(LogIn) using msbuild, which created following artifacts
PackageTmp
Login.deploy.cmd
Login.deploy-readme.txt
Login.SetParameters.xml
Login.SourceManifest.xml
Login.zip
What I wanted to do next is, after doing some xml transform using Nant inbuilt peek functionality, I simply want to invoke the Login.deploy.cmd through Nant. To test this batch file, I ran this file with following parameter
login.deploy.cmd /T
which generated following out put
=========================================================
SetParameters from:
"C:\Soft\Nant\nant-0.92\bin\LogIn\LogIn\obj\Debug\Package\Login.SetParameters.xm
l"
You can change IIS Application Name, Physical path, connectionString
or other deploy parameters in the above file.
-------------------------------------------------------
Start executing msdeploy.exe
-------------------------------------------------------
"C:\Program Files\IIS\Microsoft Web Deploy V3\\msdeploy.exe" -source:package='C
:\Soft\Nant\nant-0.92\bin\LogIn\LogIn\obj\Debug\Package\Login.zip' -dest:auto,in
cludeAcls='False' -verb:sync -disableLink:AppPoolExtension -disableLink:ContentE
xtension -disableLink:CertificateExtension -setParamFile:"C:\Soft\Nant\nant-0.92
\bin\LogIn\LogIn\obj\Debug\Package\Login.SetParameters.xml" -whatif
Info: Adding sitemanifest (sitemanifest).
Info: Creating application (Default Web Site/Login_deploy)
Info: Adding virtual path (Default Web Site/Login_deploy)
Info: Adding directory (Default Web Site/Login_deploy).
Info: Adding file (Default Web Site/Login_deploy\About.aspx).
Info: Adding directory (Default Web Site/Login_deploy\Account).
Info: Adding file (Default Web Site/Login_deploy\Account\ChangePassword.aspx).
Info: Adding file (Default Web Site/Login_deploy\Account\ChangePasswordSuccess.a
spx).
Info: Adding file (Default Web Site/Login_deploy\Account\Login.aspx).
Info: Adding file (Default Web Site/Login_deploy\Account\Register.aspx).
Info: Adding file (Default Web Site/Login_deploy\Account\Web.config).
Info: Adding directory (Default Web Site/Login_deploy\bin).
Info: Adding file (Default Web Site/Login_deploy\bin\LogIn.dll).
Info: Adding file (Default Web Site/Login_deploy\bin\LogIn.pdb).
Info: Adding file (Default Web Site/Login_deploy\Default.aspx).
Info: Adding file (Default Web Site/Login_deploy\Global.asax).
Info: Adding file (Default Web Site/Login_deploy\Login.aspx).
Info: Adding directory (Default Web Site/Login_deploy\Scripts).
Info: Adding file (Default Web Site/Login_deploy\Scripts\jquery-1.4.1-vsdoc.js).
Info: Adding file (Default Web Site/Login_deploy\Scripts\jquery-1.4.1.js).
Info: Adding file (Default Web Site/Login_deploy\Scripts\jquery-1.4.1.min.js).
Info: Adding file (Default Web Site/Login_deploy\Site.Master).
Info: Adding directory (Default Web Site/Login_deploy\Styles).
Info: Adding file (Default Web Site/Login_deploy\Styles\Site.css).
Info: Adding file (Default Web Site/Login_deploy\Web.config).
Info: Adding ACL's for path (Default Web Site/Login_deploy)
Info: Adding ACL's for path (Default Web Site/Login_deploy)
Total changes: 27 (26 added, 0 deleted, 1 updated, 0 parameters changed, 549895
bytes copied)
The logs says it has created a virtual directory by name Login_deploy, but when I check it from inet manager, I do not see any virtual directory with this name.
I am little bit confused here. Any suggestions welcome.
Edit
I also tried to invoked the msdelpoy exe manually using the following command line parameter
msdeploy.exe
-source:package=’Login.zip‘
-dest:auto
-verb:sync
-disableLink:AppPoolExtension
-disableLink:ContentExtension
-disableLink:CertificateExtension
-allowUntrusted
-retryAttempts=2
-setParam:’IIS Web Application Name’=’TargetWebApp‘
which gave following error
Error: Unrecognized argument 'Web'. All arguments must begin with "-".
Error count: 1.
Try running this:
login.deploy.cmd /Y
Tthe /T switch is for testing, and the /Y switch will actually install the package.