Deploying Web Site: Convention Question

seth.orell's Avatar

seth.orell

14 Oct, 2011 03:21 PM

I am attempting to deploy a web application to IIS over OctopusDeploy. I have a PreDeploy script that successfully creates my site name, app-pool, and all other administrivia.

My problem is that the Tentacle service appears to be calling "InstallUtil" on all my dlls, but it is skipping my primary dll - let's call it Host.dll. It attempts to install other libraries like Microsoft.Practices.EnterpriseLibrary.Data and Microsoft.Practices.EnterpriseLibrary.Common but it skips my Host.dll. Suffice it to say, I do not want to deploy either of these Microsoft libraries as a WebApp ;)

I noticed that both the EnterpriseLibrary dlls have a System.Configuration.Install referenced - is this what Tenatacle is seeking out as a convention? If so, does my WebApp need to include this? (I do this for my Windows Services I deploy through Octopus, but I haven't changed anything in my WebApp).

Finally, what can I do to have Tentacle exclude certain dlls when it attempts to install (or does this not hurt anything)?

Thanks for the input - this is the last piece toward solving my deployment puzzle.

-Seth

  1. 1 Posted by seth.orell on 14 Oct, 2011 06:39 PM

    seth.orell's Avatar

    I may be able to answer part of my question - The calls to "InstallUtil" are not part of the IIS deploy convention, but the Windows Service deploy convention.

    The clue that I overlooked was the message in the logs that says:

    Tasks will be run in the following order: - PowerShellPreDeployScript - XmlConfigTransforms - XmlConfigVariables - PowerShellDeployScript - Installers - IisWebSite - PowerShellPostDeployScript

    And what I'm seeing is the Installers section firing off on my 3rd-party libs. In other words, it's a red herring. That my IIS deploy says it succeeds but doesn't function may instead be a problem with my NuGet packaging.

    Currently, I package everything at the root - all binaries mixed in with all configs. The site, when it is installed correctly, will have all the binaries in a bin directory with the configs up at the root level. I will configure my packaging to do the same and see if I get the same results.

  2. Support Staff 2 Posted by Paul Stovell on 14 Oct, 2011 06:47 PM

    Paul Stovell's Avatar

    Hi Seth,

    You are correct about System.Configuration.Install. Octopus uses Mono.Cecil to scan through all .dll/.exe files looking for classes derived from the Installer class in that assembly. You'll need to create an Installer class in the Host.dll assembly for it to be picked up by InstallUtil.

    The location of your DLL's within the package shouldn't matter - the scan is recursive.

    Paul

  3. 3 Posted by seth.orell on 17 Oct, 2011 03:26 PM

    seth.orell's Avatar

    Ok - I have a refinement (If this should be in a new topic, please let me know and I'll do so).

    The stated conventions for IIS (here) state that I should ensure:

    The site name in IIS matches the name of your NuGet package - e.g., >MyApp.Web.nupkg -> IIS site named MyApp.Web

    However, TeamCity (Using NuGet v1.5.21005.9019) currently packages with the following convention: [id].[version].nupkg. That is, if my nuspec file has an id of My.Cool.Site and a version of 2.1.3 then I get a file named "My.Cool.Site.2.1.3.nupkg" which no longer matches my website named "My.Cool.Site"

    My two questions are:

    A) Does OctopusDeploy's convention truly require an exact match on the whole filename (up to extension) or does it ignore the version. And further - should it ignore the version?

    B) Is there a way to strip off the version during a PreDeploy or anything like that? I cannot name all my packaged site versions "My.Cool.Site.nupkg" or they will not co-exist in their source directory.

    Thanks for the input!

    -Seth

  4. 4 Posted by Paul Stovell on 17 Oct, 2011 04:15 PM

    Paul Stovell's Avatar

    Hi Seth,

    I should correct the documentation - Octopus uses the package Id (MyApp.Web) to match IIS - the version number is ignored.

    Paul
    ________________________________
    From: seth.orell
    Sent: 17/10/2011 16:33
    To: Paul Stovell
    Subject: Re: Deploying Web Site: Convention Question [Questions]

  5. Paul Stovell closed this discussion on 04 Jan, 2017 07:20 AM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac