Version Control and GAC

Discussion in 'ASP .Net' started by Terry Holland, Jun 4, 2010.

  1. This post is an attempt to find best practice for version control of
    assemblies in a solution with a view to installing them in the gac and have
    clients reference the correct version of a dll

    I have a solution that contains a number of projects (approx 25).
    One of the projects is my web application (TZ_WebApp)
    There are 4 console apps that run as scheduled tasks (TZ_Task1, TZ_Task2,
    TZ_Task3, TZ_Task4)
    There are a number of Windows Services (TZ_Service1, TZ_Service2,
    TZ_Service3, TZ_Service4)
    The above apps are currently installed on an iis server

    There is also a single winforms app that is installed on a number of client

    Each of the above apps references a core set of assemblies that encapsulates
    business logic, data access and a number of other core functions (TZ_BLL,
    TZ_DAL, TZ_Exceptions etc)
    They also reference MS Enterprise Libraries and some core .Net assemblies

    At present each of the apps that run on the iis server have a copy of all of
    the shared assemblies in there own program directories. In order to simplify
    updates we now want to install the core assemblies into the GAC on the
    server so that there is only one place where updates to our custom code need

    In order to enable this Ive added the following to each of the
    AssemblyInfo.VB files in my solution
    <Assembly: AssemblyVersion("1.14.*")>

    <Assembly: AssemblyKeyFile("\\MyServer\MyApp\SNK\TZKey.snk")>

    The references in my projects are added via the Projects tab on the Add
    Reference dialog.

    As I understand things, when I build my solution, any projects that have
    changed, would get a new version number (unchanged assemblies would keep the
    same version number as previous build)
    When I build my sultion, the build succeeds. When I attempt to run my
    application Im getting this error message

    Could not load file or assembly 'TZ_BLL, Version=1.14.3800.17235,
    Culture=neutral, PublicKeyToken=51d8ff5c9718d051' or one of its
    dependencies. The system cannot find the file specified.

    Im confused as to why my app is looking for version 1.14.3800.17235 as the
    version of TZ_BLL in its bin/debug dir is 1.14.3799.22542. Ive also done a
    search on the hdd for files called TZ_DLL and the only version I can find is
    1.14.3799.22542. Can someone shed any light on what is happening here?
    What I have noticed is that if I go back to my solution and change
    <Assembly: AssemblyVersion("1.14.*")>
    <Assembly: AssemblyVersion("")>
    on my assemblies then the app runs. Also is I change back to <Assembly:
    AssemblyVersion("1.14.*")> then the app runs.

    Can any body explain this behaviour?
    Also, can someone explain or point me to decent resource on best practice
    for creating solutions where some assemblies are destined for GAC, and how
    best to manage to Version numbers of assemblies of a solution of the size I
    am working on

    Thanks in advance for any help

    Terry Holland
    Terry Holland, Jun 4, 2010
    1. Advertisements

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Eidolon
    Jun 26, 2003
  2. =?Utf-8?B?SmVyZW15?= Custom Control in GAC Not Found

    =?Utf-8?B?SmVyZW15?=, Jan 30, 2004, in forum: ASP .Net
    Jan 30, 2004
  3. V Green
    V Green
    Feb 5, 2008
  4. PA Bear [MS MVP]
    PA Bear [MS MVP]
    Feb 5, 2008
  5. MowGreen [MVP]
    PA Bear [MS MVP]
    Feb 9, 2008

Share This Page