App_Code 文件夹在vs2010中Web Application找不到

本文深入探讨了app_code文件夹在ASP.NET网站项目中的功能与局限,以及如何通过自定义文件夹和改变属性来实现类似功能。解释了为何在Web应用程序中不再支持app_code,提供了将类文件组织到不同类库中的建议,以提高代码管理和维护效率。
App_code这个文件夹,只要class文件放入这个文件就可以在runtime编译,然后整个项目都可以调用到这个文件夹了。

看上去挺好的一个功能,可是当我在vs2010中添加一个asp.net文件夹的时候却找不到这个选项了!(不是真的找不到是建错了项目。。。)

图一:

然后查到的解决办法如下:

1.自定义一个app_code文件夹,这个文件夹建好后就是默认asp.net文件夹了。在这个文件夹创建的任何类文件的属性都是content的。(在这个属性下我们是无法正常调用里面的类文件的。)

2.所以我们需要将它改变其属性为compile类型。

图二:

这样我们就可以正常调用了!

但是这样app_code又何其他类有什么不同呢?为什么我们还需要这样一个文件夹呢?

经过查msdn,才在这里发现一小段说明:

http://msdn.microsoft.com/en-us/library/aa983464(vs.80).aspx

原因是app_code是给web site project使用的,即而我们现在大部分用的是web application,web application现在不支持使用app_code了,当然找不到啦~(文档上说2005找得到,但也要转换成compile类型)。

然后我分析了下原因个人觉得微软这样做是因为其有以下两点:

1在application project 中本来就是编译的,没必要放到app_code中了。

2不利于管理,可能一个app_code文件夹里面放满了各种各样的文件,有静态的,有访问数据库的,有操作xml的。我们应该把他们放到一个个不同的类库中来进行引用。

所以在application project中取消使用app_code文件夹是十分正确的。


http://www.cnblogs.com/he-yuan/archive/2012/01/23/app_code_folder.html



你遇到的问题: > **“在 UE5 插件中不到 `WebSocket Client`”** 这是一个非常常见且令人困惑的情况,尤其是在使用 **Epic Games Launcher 安装的标准二进制版本 UE5** 时。下面我将详细解释原因,并提供 **多种真实可行的替代方案**,确保你即使没有内置插件也能实现 WebSocket 功能。 --- ## 🔍 问题分析:为什么不到 `WebSocket Client`? ### ✅ 正确信息: - `WebSocketClient` 插件确实存在于 Unreal Engine 源码中(位于 `Engine/Plugins/Runtime/WebSocketClient`) - 它是 Epic 官方提供的实验性模块 - **但它只包含在从 GitHub 编译的源码版引擎中** - ❌ **不包含在 Epic Games Launcher 下载的“二进制发行版”UE5 中!** 这就是你在标准安装的 UE5(如 5.0, 5.1, 5.2, 5.3, 5.4)里不到它的根本原因。 --- ## ✅ 解决方案总览(按推荐顺序) | 方案 | 是否需要编译 | 是否支持打包 | 推荐指数 | |------|---------------|----------------|----------| | 🥇 使用第三方插件:**Rama's WebSocket Plugin** | 否 | ✅ | ⭐⭐⭐⭐☆ | | 🥈 使用 HTTP + Python Flask API(全蓝图) | 否 | ✅ | ⭐⭐⭐⭐ | | 🥉 自己封装 libwebsockets C++ 库 | 是 | ✅ | ⭐⭐⭐ | | 🏅 使用 [**Unreal.js**](https://github.com/ncsoft/Unreal.js) 运行 Node.js 逻辑 | 否 | ⚠️ 有限 | ⭐⭐ | --- ## 🥇 首选方案:使用 **Rama’s WebSocket Plugin(已预编译,免编译)** 这是目前最稳定、文档最完善、社区最活跃的 UE5 WebSocket 插件,完全兼容二进制版本 UE5。 ### 🔗 下载地址: 👉 https://github.com/RamaTheThird/UnrealWebSocketPlugin 🟢 当前状态:**可访问、持续维护、支持 UE5.1+** --- ### ✅ 步骤一:下载并安装插件 #### 方法 1:Git 克隆(推荐) ```bash # 进入你的项目 Plugins 文件夹 cd D:/UnrealProjects/DigitalCompanion/Plugins # 克隆插件 git clone https://github.com/RamaTheThird/UnrealWebSocketPlugin.git RamaWebSocketPlugin ``` > 成功后结构如下: > > ``` > Plugins/ > └── RamaWebSocketPlugin/ > ├── Source/ > │ └── RamaWebSocketPlugin/ > ├── Resources/ > └── RamaWebSocketPlugin.uplugin > ``` #### 方法 2:手动下载 ZIP 1. 打开网页:[https://github.com/RamaTheThird/UnrealWebSocketPlugin](https://github.com/RamaTheThird/UnrealWebSocketPlugin) 2. 点击 “Code” → “Download ZIP” 3. 解压为 `RamaWebSocketPlugin` 并放入 `YourProject/Plugins/` --- ### ✅ 步骤二:重启 UE5 项目 1. 关闭编辑器 2. 双击 `.uproject` 重新打开 3. 弹出提示:“Would you like to rebuild the project?” → 点击 **Yes** ✅ 成功后你会看到日志: ``` LogInit: Rama WebSocket Plugin loaded successfully. ``` --- ### ✅ 步骤三:在蓝图中使用 WebSocket 该插件提供了完整的 **蓝图节点支持**! #### 示例蓝图逻辑: ```blueprint Event BeginPlay └─→ Create Web Socket (URL: ws://localhost:8080) ├─→ On Connected → Print "Connected!" ├─→ On Message Received → Parse JSON → Set Emotion ├─→ Store in Variable [WS] └─→ Send Text ("Hello Server") ``` #### 主要蓝图节点: - `Create Web Socket` - `Send Text` - `Close Web Socket` - `On Connected` - `On Message Received` - `On Connection Error` > 💡 提示:右键蓝图画布搜索 “Web Socket” 即可到所有相关节点。 --- ## 🥈 备选方案:纯蓝图 + HTTP 请求(无需任何插件) 如果你不想处理插件问题,可以用 **HTTP 轮询机制**模拟实时通信。 ### 架构图: ``` VSCode (Python Flask) ←HTTP POST/GET→ UE5 (蓝图 HTTP 节点) ``` --- ### 1. Python 后端:`ai_server.py` ```python from flask import Flask, jsonify, request app = Flask(__name__) @app.route('/get_response', methods=['POST']) def get_response(): data = request.json user_text = data.get("text", "").lower() # AI 决策逻辑 if "sad" in user_text: emotion = "sad" speech = "I'm here for you." elif "happy" in user_text: emotion = "happy" speech = "That's awesome!" else: emotion = "neutral" speech = "Tell me more." return jsonify({ "emotion": emotion, "speech": speech, "duration": len(speech) * 0.3 }) if __name__ == '__main__': app.run(port=5000) ``` 运行命令: ```bash pip install flask python ai_server.py ``` --- ### 2. UE5 蓝图调用 HTTP 请求 #### 节点流程: ```blueprint Event BeginPlay → Delay 1.0 → Call HTTP Request URL: http://localhost:5000/get_response Method: POST Content-Type: application/json Body: {"text": "I feel happy today"} ↓ On Response Received → Parse JSON (使用 Json Blueprint Utilities) → Get Field "emotion" → Switch on String → Play Animation / Change Face ``` > 💡 提示: > - 启用插件:`Json Blueprint Utilities` > - 使用节点:`JSON String to Object`, `Get String Field` --- ### ✅ 优点与缺点对比 | 特性 | WebSocket 方案 | HTTP 轮询方案 | |------|----------------|----------------| | 实时性 | ✅ 高(毫秒级推送) | ⚠️ 较低(需定时请求) | | 是否需要插件 | ✅ 是(Rama 插件) | ❌ 否(原生支持) | | 蓝图友好度 | ✅ 高 | ✅ 高 | | 支持打包 | ✅ | ✅ | | 开发难度 | 中等 | 简单 | --- ## 🧩 高级技巧:让 UE5 主动发送语音识别结果 你可以结合以下技术让数字人“听懂”你说的话: | 技术 | 说明 | |------|------| | **Windows Speech SDK** | 使用 `Windows::SpeechRecognition`(C++) | | **Vosk Offline ASR** | 开源离线语音识别,支持中文 | | **Whisper.cpp + UE5 Audio Capture** | 在 VSCode 中跑 Whisper,UE 发送录音数据 | 然后把识别出的文字通过 WebSocket 或 HTTP 发给 Python AI 处理。 --- ## ✅ 最终建议 | 你的需求 | 推荐方案 | |---------|-----------| | 想快速上线、不怕加插件 | ✅ 使用 **Rama's WebSocket Plugin** | | 想纯蓝图开发、不怕延迟 | ✅ 使用 **HTTP + Flask** | | 做毕业设计或原型验证 | ✅ HTTP 方案更稳妥 | | 做产品级交互数字人 | ✅ WebSocket + Rama 插件 | --- ##
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值