gpt4 book ai didi

c# - ASP.NET 网站到 Web 应用程序的转换问题 - 无法加载类型 'ClassName' 并为所有现有网页技术设置命名空间

转载 作者:行者123 更新时间:2023-12-04 16:56:08 24 4
gpt4 key购买 nike

我已经将一个巨大的网站项目转换为一个 Web 应用程序项目,因为我们希望出于安全目的以 DLL 的形式编译代码,并遵循以下 MSDN 文章:

http://blogs.msdn.com/b/webdev/archive/2009/10/29/converting-a-web-site-project-to-a-web-application-project.aspx

http://msdn.microsoft.com/en-us/library/aa983476%28v=vs.100%29.aspx


该网站有 1000 个网页/文件。我已经解决了在构建解决方案阶段面临的所有重复引用、类名冲突和一些编译错误的问题。由于较早的网站模式,类名采用以下模式:
例如如果 UserMaster 位于 admin/Operations/Masters 文件夹中,则类名将类似于: admin_Operations_Masters_UserMaster .
现在,Web 应用程序正在成功构建,当我尝试运行该应用程序时,它显示 “无法加载类型‘类名’”所以我发现问题是因为 由于较早的网站模式,命名空间不存在 .
在 MSDN 中发现:

By default, pages and classes that are built by using the Visual Studio Web site project model do not automatically include a code namespace. However, pages, controls, and classes that are built by using the Visual Studio Web application project model automatically include a code namespace. When converting the Web site project to a Web application project, you will have to add the namespaces to the code.


我有 默认命名空间 在项目属性中。
所以我尝试通过 将命名空间添加到整个项目中ReSharper -> 重构 -> 调整命名空间 但它仅适用于 .cs 文件,不适用于 .aspx.cs 等,因此它不起作用。
我想我需要制作一个实用程序来根据文件夹路径结构在页面中自动添加命名空间,但这是一个耗时的过程。
因此需要一种解决方法来根据其文件夹路径结构在页面中自动添加命名空间 .
其次,
我所做的测试是,我已经包装了 默认命名空间 在我面对的项目的登录页面中 ' 无法加载类型问题 ',添加于 继承 属性也。然后做了一个 清洁液 然后 重建方案 .但仍然遇到同样的问题。
我不明白为什么 DLL 没有使用登录页面的类进行更新。
奇怪的是当我改变 代码隐藏 代码文件 (页面指令的属性)然后页面工作得很好。由于在运行项目时存在源文件,但我想使用 Codebehind 属性,因为它会告诉编译器在 DLL 中查找类而不是在源文件中。

Finally, Summary is :

I have two major issues:

  • Could not load type 'className'
  • How to add the namespaces automatically in pages as per their folder path structure.

我已经在这里搜索过并遇到了不同的主题,但没有任何东西对我有用。有人建议使用 VS 的“环绕”功能,但我需要一个一个地处理每个文件,这现在是不可能的。
所以尝试过:
  • Set path of DLL to "bin" instead of "bin\debug"
  • Checked the Build Configuration and its of x86. also the DLL is present in bin
  • Checked all project properties and all are fine. Cleaned and rebuild solution hundreds of times. Cleaned Temporary ASP.NET files also.
  • Set Build Action to "Compile" for .cs class files
  • Cannot set Build action to Compile for aspx pages as they are static html and they should be set to "Content" which is default Build Action.
  • Resharper solution for adding namespaces but not working

请帮忙....
任何帮助将不胜感激。谢谢。

最佳答案

解决了问题:

早些时候,我曾尝试将构建操作设置为“编译”,仅用于 .cs 类文件和站点范围内的所有文件以从 编译.csproj 文件,但由于 aspx 页面本身设置为不需要的编译,因此无法正常工作。

现在,我已将 Buid Action 更改为 编译这是 内容 对于 .aspx.cs 和 .aspx.designer.cs 文件。

它解决了这个问题。

例如:

  • 解决方案“TestWebApp1”
  • 项目“TestWebApp1”( ASP.NET Web 应用程序)
  • 属性
  • 引用文献
  • App_Data
  • 脚本
  • Default.aspx( 构建操作:内容 )
  • Default.aspx.cs ( 构建操作:编译 )
  • SiteLayout.Master( 构建操作:内容 )
  • SiteLayout.Master.cs ( 构建操作:编译 )
  • Web.config

  • Source: None of my "code behind" code is being called

    关于c# - ASP.NET 网站到 Web 应用程序的转换问题 - 无法加载类型 'ClassName' 并为所有现有网页技术设置命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26635154/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com