"Global functions" bug?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • =?Utf-8?B?UiBSZXllcw==?=

    "Global functions" bug?

    I have a public class called Database.cs. It has public static functions and
    I call them from ProjectA. The code looks something like:
    int intConnectionSu ccessful = Database.Connec tToDatabase();

    Works great.

    Now, I have another project, ProjectB on a different server. I copy and add
    Database.cs to the project and also call the functions the exact same way as
    above. However, I always get this error message:
    'The name 'Database' does not exist in the current context'
    OR
    The type or namespace name 'Database' could not be found (are you missing a
    using directive or an assembly reference?)

    The file is added to the project and the code is exactly the same except it
    works in ProjectA and not in ProjectB. I've compared the files and even the
    way they are used in each project to match them up but no matter what I can't
    get it to work in ProjectB. I've tried manually retyping everything as well
    as copying files for duplication.

    I can't seem to replicate the working version even when creating a new
    project and starting from scratch. I'm guessing there is either some
    configuration setting I missed or the file has to be referenced in a specific
    way.

    If possible could someone list the exact steps to make this work like I have
    it in ProjectA? Or have any ideas why it doesn't work? The only difference
    is that one project is made in Visual Web Developer 2008 Express and the
    working version is made in Visual Studio 2005

    Please help. Thanks in advance.

  • Adam Clauss

    #2
    Re: "Global functions" bug?

    "R Reyes" <RReyes@discuss ions.microsoft. comwrote in message
    news:32445992-357C-40A4-9054-1FE74BC88380@mi crosoft.com...
    >I have a public class called Database.cs. It has public static functions
    >and
    I call them from ProjectA. The code looks something like:
    int intConnectionSu ccessful = Database.Connec tToDatabase();
    >
    Works great.
    >
    Now, I have another project, ProjectB on a different server. I copy and
    add
    Database.cs to the project and also call the functions the exact same way
    as
    above. However, I always get this error message:
    'The name 'Database' does not exist in the current context'
    OR
    The type or namespace name 'Database' could not be found (are you missing
    a
    using directive or an assembly reference?)
    This error message is usually the winner. Does your original usage have a
    "using XYZ" at the top (where XYZ is the namesapce of your Database class)?
    Make sure that same "using" statement exists in the new code too.

    -Adam


    Comment

    • Jon Skeet [C# MVP]

      #3
      Re: &quot;Global functions&quot; bug?

      R Reyes <RReyes@discuss ions.microsoft. comwrote:
      I have a public class called Database.cs. It has public static functions and
      I call them from ProjectA. The code looks something like:
      int intConnectionSu ccessful = Database.Connec tToDatabase();
      >
      Works great.
      >
      Now, I have another project, ProjectB on a different server. I copy and add
      Database.cs to the project and also call the functions the exact same way as
      above. However, I always get this error message:
      'The name 'Database' does not exist in the current context'
      OR
      The type or namespace name 'Database' could not be found (are you missing a
      using directive or an assembly reference?)
      Right. Database is probably in a namespace like ProjectA, which you
      don't have a using directive for - just as the compiler is telling you.

      --
      Jon Skeet - <skeet@pobox.co m>
      Web site: http://www.pobox.com/~skeet
      Blog: http://www.msmvps.com/jon.skeet
      C# in Depth: http://csharpindepth.com

      Comment

      • =?Utf-8?B?UiBSZXllcw==?=

        #4
        Re: &quot;Global functions&quot; bug?

        Hi Jon/Adam,

        using System;
        using System.Data;
        using System.Data.Sql Client;
        using System.Drawing;
        using System.Configur ation;
        using System.Collecti ons;
        using System.Web;
        using System.Web.Secu rity;
        using System.Web.UI;
        using System.Web.UI.W ebControls;
        using System.Web.UI.W ebControls.WebP arts;
        using System.Web.UI.H tmlControls;

        is all that I have...I also thought it was the using directive and possibly
        even a "Reference" or "include" directive in the .aspx page but that did not
        work either...differ ent error message I think though, not sure. FYI, I do
        not use any namespace {} code in both projects and it's also referenced
        straight up "Database.somef unction()" or "Constants.some function()" with no
        other prefix and works fine in ProjectA.

        Database.cs is one of the files but the main one I am trying to also include
        is called Constants.cs which holds some variables/functions. I use about 3-4
        of these exact same classes in all my projects and none of them work in this
        one but work in every other project..Projec tC, D, E, F, G for example all
        fine except this one doesn't.

        Does it matter where the file is placed? ProjectA has them in the App_Code
        directory I forgot why I put them there. ProjectB I put it in App_Code as
        well as the root just to cover all grounds but still no luck.

        Do you think that because the code sounds/looks correct that maybe it has
        something to do with IIS, or how the aspnet_client folder was installed? A
        configuration setting maybe?

        If you like, I could possibly even send over a small set of "compiler" files
        just to get a general idea of what my project looks like: default.aspx,
        default.aspx.cs , constants.cs/database.cs, web.config, and a .css. My bet is
        that it would work on your computers but not on mine because I have something
        configured incorrectly on IIS possibly.

        I understand it's a holiday weekend so feel free to reply to this thread
        whenever you please. Also, this is a personal project so I am in no rush to
        solve it but am definitely looking for answers. Gonna play around with it
        now again...

        I'll keep you posted if I solve it myself. Thanks again for your help,
        most appreciated.

        "Jon Skeet [C# MVP]" wrote:
        R Reyes <RReyes@discuss ions.microsoft. comwrote:
        I have a public class called Database.cs. It has public static functions and
        I call them from ProjectA. The code looks something like:
        int intConnectionSu ccessful = Database.Connec tToDatabase();

        Works great.

        Now, I have another project, ProjectB on a different server. I copy and add
        Database.cs to the project and also call the functions the exact same way as
        above. However, I always get this error message:
        'The name 'Database' does not exist in the current context'
        OR
        The type or namespace name 'Database' could not be found (are you missing a
        using directive or an assembly reference?)
        >
        Right. Database is probably in a namespace like ProjectA, which you
        don't have a using directive for - just as the compiler is telling you.
        >
        --
        Jon Skeet - <skeet@pobox.co m>
        Web site: http://www.pobox.com/~skeet
        Blog: http://www.msmvps.com/jon.skeet
        C# in Depth: http://csharpindepth.com
        >

        Comment

        • =?Utf-8?B?UiBSZXllcw==?=

          #5
          Re: &quot;Global functions&quot; bug?

          Okay not solving this annoyed me so much today that I just recreated ProjectZ
          and it all works fine now. ProjectB was just bad and a "fresh install" was
          needed.

          Thanks for your time!

          "R Reyes" wrote:
          Hi Jon/Adam,
          >
          using System;
          using System.Data;
          using System.Data.Sql Client;
          using System.Drawing;
          using System.Configur ation;
          using System.Collecti ons;
          using System.Web;
          using System.Web.Secu rity;
          using System.Web.UI;
          using System.Web.UI.W ebControls;
          using System.Web.UI.W ebControls.WebP arts;
          using System.Web.UI.H tmlControls;
          >
          is all that I have...I also thought it was the using directive and possibly
          even a "Reference" or "include" directive in the .aspx page but that did not
          work either...differ ent error message I think though, not sure. FYI, I do
          not use any namespace {} code in both projects and it's also referenced
          straight up "Database.somef unction()" or "Constants.some function()" with no
          other prefix and works fine in ProjectA.
          >
          Database.cs is one of the files but the main one I am trying to also include
          is called Constants.cs which holds some variables/functions. I use about 3-4
          of these exact same classes in all my projects and none of them work in this
          one but work in every other project..Projec tC, D, E, F, G for example all
          fine except this one doesn't.
          >
          Does it matter where the file is placed? ProjectA has them in the App_Code
          directory I forgot why I put them there. ProjectB I put it in App_Code as
          well as the root just to cover all grounds but still no luck.
          >
          Do you think that because the code sounds/looks correct that maybe it has
          something to do with IIS, or how the aspnet_client folder was installed? A
          configuration setting maybe?
          >
          If you like, I could possibly even send over a small set of "compiler" files
          just to get a general idea of what my project looks like: default.aspx,
          default.aspx.cs , constants.cs/database.cs, web.config, and a .css. My bet is
          that it would work on your computers but not on mine because I have something
          configured incorrectly on IIS possibly.
          >
          I understand it's a holiday weekend so feel free to reply to this thread
          whenever you please. Also, this is a personal project so I am in no rush to
          solve it but am definitely looking for answers. Gonna play around with it
          now again...
          >
          I'll keep you posted if I solve it myself. Thanks again for your help,
          most appreciated.
          >
          "Jon Skeet [C# MVP]" wrote:
          >
          R Reyes <RReyes@discuss ions.microsoft. comwrote:
          I have a public class called Database.cs. It has public static functions and
          I call them from ProjectA. The code looks something like:
          int intConnectionSu ccessful = Database.Connec tToDatabase();
          >
          Works great.
          >
          Now, I have another project, ProjectB on a different server. I copy and add
          Database.cs to the project and also call the functions the exact same way as
          above. However, I always get this error message:
          'The name 'Database' does not exist in the current context'
          OR
          The type or namespace name 'Database' could not be found (are you missing a
          using directive or an assembly reference?)
          Right. Database is probably in a namespace like ProjectA, which you
          don't have a using directive for - just as the compiler is telling you.

          --
          Jon Skeet - <skeet@pobox.co m>
          Web site: http://www.pobox.com/~skeet
          Blog: http://www.msmvps.com/jon.skeet
          C# in Depth: http://csharpindepth.com

          Comment

          • Jon Skeet [C# MVP]

            #6
            Re: &quot;Global functions&quot; bug?

            R Reyes <RReyes@discuss ions.microsoft. comwrote:
            is all that I have...I also thought it was the using directive and possibly
            even a "Reference" or "include" directive in the .aspx page but that did not
            work either...differ ent error message I think though, not sure. FYI, I do
            not use any namespace {} code in both projects and it's also referenced
            straight up "Database.somef unction()" or "Constants.some function()" with no
            other prefix and works fine in ProjectA.
            You're sure that Constants.cs and Database.cs don't have
            namespace { ... } anywhere? Did you manually get rid of that?
            Database.cs is one of the files but the main one I am trying to also include
            is called Constants.cs which holds some variables/functions. I use about 3-4
            of these exact same classes in all my projects and none of them work in this
            one but work in every other project..Projec tC, D, E, F, G for example all
            fine except this one doesn't.
            Does it matter where the file is placed? ProjectA has them in the App_Code
            directory I forgot why I put them there. ProjectB I put it in App_Code as
            well as the root just to cover all grounds but still no luck.
            That does indeed make a difference, but I've had issues with App_Code
            before myself. Ask on the ASP.NET group for more info.

            However, if you've got several classes which you're reusing, why don't
            you put them into a class library? Copying the source code for every
            project you create isn't a nice way to reuse them.

            When you added the files to the project, did you add them in VS, or
            just copy them into the directory? VS will need to know that they're
            meant to be part of the project. If you make a change which breaks the
            code within Database.cs does it notice and complain?

            --
            Jon Skeet - <skeet@pobox.co m>
            Web site: http://www.pobox.com/~skeet
            Blog: http://www.msmvps.com/jon.skeet
            C# in Depth: http://csharpindepth.com

            Comment

            • =?Utf-8?B?UiBSZXllcw==?=

              #7
              Re: &quot;Global functions&quot; bug?

              Positive. Even after I created ProjectZ and got everything working so that I
              could scrap ProjectB...all good and functional with no namespace {...}.

              public partial class Page1: System.Web.UI.P age {...} with no namespace {...}
              surrounding it.

              "Jon Skeet [C# MVP]" wrote:
              R Reyes <RReyes@discuss ions.microsoft. comwrote:
              is all that I have...I also thought it was the using directive and possibly
              even a "Reference" or "include" directive in the .aspx page but that did not
              work either...differ ent error message I think though, not sure. FYI, I do
              not use any namespace {} code in both projects and it's also referenced
              straight up "Database.somef unction()" or "Constants.some function()" with no
              other prefix and works fine in ProjectA.
              >
              You're sure that Constants.cs and Database.cs don't have
              namespace { ... } anywhere? Did you manually get rid of that?
              >
              Database.cs is one of the files but the main one I am trying to also include
              is called Constants.cs which holds some variables/functions. I use about 3-4
              of these exact same classes in all my projects and none of them work in this
              one but work in every other project..Projec tC, D, E, F, G for example all
              fine except this one doesn't.
              >
              Does it matter where the file is placed? ProjectA has them in the App_Code
              directory I forgot why I put them there. ProjectB I put it in App_Code as
              well as the root just to cover all grounds but still no luck.
              >
              That does indeed make a difference, but I've had issues with App_Code
              before myself. Ask on the ASP.NET group for more info.
              >
              However, if you've got several classes which you're reusing, why don't
              you put them into a class library? Copying the source code for every
              project you create isn't a nice way to reuse them.
              >
              When you added the files to the project, did you add them in VS, or
              just copy them into the directory? VS will need to know that they're
              meant to be part of the project. If you make a change which breaks the
              code within Database.cs does it notice and complain?
              >
              --
              Jon Skeet - <skeet@pobox.co m>
              Web site: http://www.pobox.com/~skeet
              Blog: http://www.msmvps.com/jon.skeet
              C# in Depth: http://csharpindepth.com
              >

              Comment

              • Jon Skeet [C# MVP]

                #8
                Re: &quot;Global functions&quot; bug?

                On May 27, 3:12 pm, R Reyes <RRe...@discuss ions.microsoft. comwrote:
                Positive. Even after I created ProjectZ and got everything working so that I
                could scrap ProjectB...all good and functional with no namespace {...}.
                >
                public partial class Page1: System.Web.UI.P age {...} with no namespace {...}
                surrounding it.
                But what about Constants.cs and Database.cs? That's where the
                namespaces would be important.

                Have you tried comparing the project files between the "working" and
                "broken" projects?

                Jon

                Comment

                • =?Utf-8?B?UiBSZXllcw==?=

                  #9
                  Re: &quot;Global functions&quot; bug?

                  Same thing:
                  Public class Constants {...}
                  Public class Database {...}

                  I've tried comparing files and they are in fact an exact match. So,
                  ProjectB still does not work and I've scrapped it for the most part.

                  When I copied all of ProjectB's files into ProjectZ (completely new project)
                  it all works. So again, I was able to work around the issue by recreating
                  the project completely in a new folder with the "copied" files and still
                  believe the issue have been caused by an incorrect in IIS, though I haven't
                  looked into it.


                  "Jon Skeet [C# MVP]" wrote:
                  On May 27, 3:12 pm, R Reyes <RRe...@discuss ions.microsoft. comwrote:
                  Positive. Even after I created ProjectZ and got everything working so that I
                  could scrap ProjectB...all good and functional with no namespace {...}.

                  public partial class Page1: System.Web.UI.P age {...} with no namespace {...}
                  surrounding it.
                  >
                  But what about Constants.cs and Database.cs? That's where the
                  namespaces would be important.
                  >
                  Have you tried comparing the project files between the "working" and
                  "broken" projects?
                  >
                  Jon
                  >

                  Comment

                  Working...