"Gregory A. Beamer" wrote:
>
>
> "Scott M." <s-(E-Mail Removed)> wrote in message
> news:B43A5666-28C2-41A7-9245-(E-Mail Removed)...
> > I thought I understood this, but I guess not.
> >
> > In ASP .NET 3.5, using VS 2008 Pro. and working with Web Applicaiton
> > Projects (NOT WEB SITES) that use the code-behind model, I was under the
> > impression that deployment of the .aspx files and the pre-compiled .dll in
> > the /bin folder was all that is needed. As far as I can remember, this is
> > what I've been doing since ASP.NET's inception.
> >
> > But, now I've switched hosting providers and am starting fresh by
> > uploading
> > only the files needed for the site to function. I've built my project in
> > release mode and used the Publish feature with "Only files needed to run
> > this
> > applicaiton" selection turned on. As expected, only my .aspx, web.config,
> > global.asax, and /bin directory (with my compiled .dll in it) are
> > deployed.
> > But, now I'm getting errors when I try to access the .aspx pages that say
> > that the referenced CodeFile cannot be found.
> >
> > Again, to be clear, I'm NOT using Web Site, this is an ASP.NET Web
> > Application Project that is built locally and I just want to deploy the
> > .aspx
> > pages but not the source code. I'm sure this is what I've done in the
> > past.
> >
> > I've tried taking the CodeFile="" portion out of the @Page directive line,
> > but then I get an error saying that an instance of that page's class could
> > not be made.
> >
> > What gives?
>
> What gives? Without the page class, you only have a partial class that is
> the tags being rendered. So, without an actual class definition, it screams
> at you.
>
> To deploy without source, right click on the web project and choose publish.
> Then choose a folder to publish to. You can then deploy the compiled
> solution from that point. It will compile the code into DLLs and NOT include
> the code behind files.
>
> --
> Peace and Grace,
> Greg
>
> Twitter: @gbworld
> Blog: http://gregorybeamer.spaces.live.com
>
> ************************************************
> | Think outside the box! |
> ************************************************
Unfortunately, the Publish option doesn't work as you describe.
I get that there are partial classes and that not deloying the .vb codefile
means that part of the class definition is missing, but that shouldn't matter
if I'm deploying my application assembly (.dll) because the entire class
definition is in that.
When I choose Publish and select "Only files needed to run the application"
the published files do not include source code files (as I expect and want),
but when you try to call one of the .aspx files, I get a message saying that
the codefile cannot be found.
I've tracked this down to the change from the older "CodeBehind" attribute
to the new CodeFile attribute. It seems that when working with the
codebehind model, but utilizing the "CodeFile" attribute, source code MUST be
deployed along with the other files, but if you put all your code back into
one code-behind, remove the "partial" keyword, and change "CodeFile" to
"CodeBehind" that you can deploy just the .aspx pages and the assembly in the
/bin folder.
-Scott