What know?

Feb 5, 2009 at 2:25 PM
I already have installed TFS Deployer on my machine.
The service is working, and the Deployment folder is created on the build I want to deploy.

The problem is that after changing the build quality nothing happens!!!

I already tryied to do tfsployer.exe -d, but the only message I get is "Hit enter to stop the service".

How can I know if is the subscription is working? And if I set up all right?

Thanks in advance.
Feb 13, 2009 at 2:34 PM
There are a couple of ways to look for a subscription

Quickest is to connect to TFS Data tier directly via SQL Management Studio
connection type: Database Engine
Database: TfsIntegration
Table: tbl_subscription

Open that table and look for a subscripts that matches your TFS Deployer

or

Use the Event Subscription tool found on Code Plex


With that said, if the TFS Deployer service is starting up w/o issue than you can be pretty sure the subscription has been created - remember when you shutdown the service the scription is deleted -  Therefore I would ask that you ensure the tfsdeployer.exe.config is correct.  If that is correct, I would next look on the event veiwer on the Application teir to see if there are any warnings that the event soap message cannot find the TFS Deployer endpoint (http://[Webserver:Port#]/BuildStatusChangeEvent/BuildStatusChangeEvent)

Let me know

BJHop

Feb 16, 2009 at 3:30 PM
The problem was my user that is Administrator but do not have acess to the webservice. I didn't understant why. I changed to the administrator user of the machine and started to work. This is not the ideal situation, but for now is working.

Now i'm with a problem a little bit different, that is I copy the build and after the file copy I want to start the .msi file automatically. The problem is that if I execute the same script on a shell window I have no problem, but when I change the build quality on the server nothing happen when I try to execute the process, but I received the mail that is all allright.

The question is that I dont want a silent install, instead the user should be able to proceed to instalation or abort.

The entire script is bellow but i'm only having problems with this:

********************************************************************

## Executes the installation

$process = "msiexec"
$arguments = "/a " + $webdestinationpath + "\AthenaHostSetup.msi"

 

## Prepare the startup information

$startInfo = New-Object Diagnostics.ProcessStartInfo
$startInfo.Filename = $process
$startInfo.Arguments = $arguments

## Start the process
[Diagnostics.Process]::Start($startInfo)

********************************************************************


## Gets the build drop location
$droplocation = $TfsDeployerBuildData.DropLocation

## Change the build drop location because is different from the one it should be
$changeddroplocation = $droplocation.Substring(0, $droplocation.IndexOf("Host") + 4) + "\1.0.010" + $droplocation.Substring($droplocation.Length - 5, 4) + "0" + $droplocation.Substring($droplocation.Length - 1,1) + "\x86\Release"

$changedroplocation

## Create the directory to where files will be copied
$webdestinationpath = "\Athena.Deploy\" + "1.0.010" + $droplocation.Substring($droplocation.Length - 5, 4) + "0" + $droplocation.Substring($droplocation.Length - 1,1)
new-item —force -path $webdestinationpath -itemtype "directory"
$webdestinationpath

## Copy files

get-childitem $webdestinationpath | remove-item -force -recurse
$websourcepath = $changeddroplocation
get-childitem $websourcepath | copy-item -force —recurse -destination $webdestinationpath

## Executes the installation

$process = "msiexec"
$arguments = "/a " + $webdestinationpath + "\AthenaHostSetup.msi"

 

## Prepare the startup information

$startInfo = New-Object Diagnostics.ProcessStartInfo
$startInfo.Filename = $process
$startInfo.Arguments = $arguments

## Start the process
[Diagnostics.Process]::Start($startInfo)

Feb 23, 2009 at 7:07 PM
I am unsure I understand your issue, you want the install wizard to open up on the persons PC that kicked off the deployer.  I believe that will be impossible, remember, the architecture of TFS and TFS Deployer which is all SOA based. 

 
Feb 24, 2009 at 7:56 PM
Edited Feb 24, 2009 at 8:00 PM
What you want is the ability for the TFSDeployer service to interact with the desktop. As far as I know the only way to accomplish that is to set the service to run as LOCALSYSTEM and then check the box "allow interaction with desktop" in the service property page. The catch is now that account needs to have TFS rights, etc.

I have a similar issue where I need to kick off automated UI tests after a deployment, so what I've done to work around it is have a script running interactively that watches the event log for a "Deployment successful" event that my deployer script logs. Then when it see that event it kicks off a UI test and then waits for the next deployment.

Feb 24, 2009 at 8:11 PM

For the desktop interaction to work would not have to be on the server itself where TFS Deployer is running? If that is case, why use tfs deployer if you have to log on to the server to get the deployment to run? Seems like a ton of overhead where a simple PSH script kickoff with a param asking for the build number and Team Project would do the job. I mean, you’re already logging on the server why open up VS and kick off a deployment to get an install wizard started.

BJHop

From: PaulChavez [mailto:notifications@codeplex.com]
Sent: Tuesday, February 24, 2009 3:56 PM
To: Hopenwasser, Brian
Subject: Re: What know? [tfsdeployer:46312]

From: PaulChavez

What you want is the ability for the TFSDeployer service to interact with the desktop. As far as I know the only way to accomplish that is to set the service to run as LOCALSYSTEM and then check the box "allow interaction with desktop" in the service property page. The catch is now that account needs to have TFS rights, etc.

I have a similar issue where I need to kick off automated UI tests after a deployment, so what I've done to work around it is have a script running interactively that watches the event log for a "Deployment successful" event that my deployer script runs. Then when it see that event it kicks off a UI test and then waits for the next deployment.

Read the full discussion online.

To add a post to this discussion, reply to this email (tfsdeployer@discussions.codeplex.com)

To start a new discussion for this project, email tfsdeployer@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe on codePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at codeplex.com

Feb 24, 2009 at 9:09 PM
Yeah, I kind of understand your point, it's a lot of overhead to get to a point where you have to interact with the installer anyway.

In my case everything is run automated, there is a disconnected TS session to run the interactive tests but nobody actually connects to it unless it goes haywire.