Reputation: 97
I'm having a problem accessing a class after deploying my website to a server. Note that this is a Web Site not Web Application.The error is:
Compiler Error Message: CS0246: The type or namespace name 'Order' could not be found (are you missing a using directive or an assembly reference?)
Version Information: Microsoft .NET Framework Version:2.0.50727.1433; ASP.NET Version:2.0.50727.1433
I've done a lot of googling and haven't been able to find anything that helps.
My code looks like this (I get the compiler error on the line declaring Order):
//Default.aspx.cs
namespace Foo
{
public partial class _Default : System.Web.UI.Page
{
private Order custOrder;
....etc
}
}
In the App_Code folder I have Order.cs:
namespace Foo
{
public class Order
{
....etc
}
}
The strange thing is that this works fine locally and in a dev environment. When I move it to a qa environment, that's when I get that error.
I deploy by committing all the code to a subversion repository and then doing an export on the server machines.
I guess it could be some kind of namespace error, but I don't know why it would work on some machines and not others.
Any idea what could be different on a different server that might cause this? All machines report the .net version as 2.0
Upvotes: 5
Views: 11538
Reputation: 1263
Is the property Build Action set to Compile on your App_Code files ? It is not by default on Web Application Projects.
Upvotes: 1
Reputation: 1674
Right click the source file in App_Code and set its "Build Action" property to "Compile".
Upvotes: 18
Reputation: 29051
As it says, the error means that it couldn't find that type.
Possible causes:
A compilation error prevented the .cs files in your app_code folder from being compiled. When ASP.NET looks at the compiled code, it can't find the class you're looking for, thus the error.
The .cs files weren't deployed to app_code. Obviously if the source files aren't in the site, they can't be compiled.
A permissions issue is preventing the server from loading the .cs files.
One of your pages is incorrectly referencing the class - perhaps a typo in the .cs or the .aspx, a class moved to a new namespace or renamed, etc.
Essentially, the source couldn't be found, accessed or compiled.
Upvotes: 3
Reputation: 621
A lot of times the bin directory is ignored in SVN (for good reason) so what ends up happening is that locally (when debugging) VS takes care of creating the App_Code.dll for you. What you will need to do is check to see if the bin directory is deployed to your server machines. If it isn't you have many ways to deploy your solution, by using deploy website, or ftp copy, etc.
Upvotes: 1