C# 无法编辑DotNetNuke源文件

C# 无法编辑DotNetNuke源文件,c#,dotnetnuke,dotnetnuke-7,dnn-module,C#,Dotnetnuke,Dotnetnuke 7,Dnn Module,我是DotNetNuke框架的新手。目前正在使用DNN 07.04.01(280)版本 问题: 在DNN源文件中所做的更改在我运行它时甚至无法识别 我正在开发“用户帐户””模块。我们有一个名为“UserController.cs”的控制器。我无法添加或编辑此源文件,这意味着我可以更改代码,但在调试文件时不会影响更改,它执行相同的旧代码,甚至无法识别新代码 这可能是一个奇怪的问题,但我面临着这个问题 我所尝试的: 我试图在DNN论坛上搜索这个问题,但没有希望 有没有解决这个问题的办法?这将是可观的

我是DotNetNuke框架的新手。目前正在使用DNN 07.04.01(280)版本

问题

在DNN源文件中所做的更改在我运行它时甚至无法识别

我正在开发“用户帐户””模块。我们有一个名为“UserController.cs”的控制器。我无法添加或编辑此源文件,这意味着我可以更改代码,但在调试文件时不会影响更改,它执行相同的旧代码,甚至无法识别新代码

这可能是一个奇怪的问题,但我面临着这个问题

我所尝试的

我试图在DNN论坛上搜索这个问题,但没有希望

有没有解决这个问题的办法?这将是可观的。请帮助我们进入这个领域

public HttpResponseMessage Update([FromBody] JObject jsonData)

{

var user = jsonData.ToObject<CMSUser>();

var password = user.Password;

var apiToken = user.Token;

HttpResponseMessage response;

var pwd = password;

//dynamic json = jsonData;

//JValue apiToken = json["apiToken"];

//JObject userJson = json["user"];

if (password == null ||

apiToken == null ||

InitializeApiRequest(apiToken.ToString(CultureInfo.InvariantCulture)) != null)

{

return Request.CreateResponse(HttpStatusCode.BadRequest, ApiResponse);

}

//var user = userJson.ToObject<CMSUser>();

UserInfo dnnUser;

//HttpResponseMessage response;

if (!UpdateDnnUserWithCMSUser(user, out dnnUser, out response)) { return response; }

try

{

DotNetNuke.Entities.Users.UserController.UpdateUser(PortalSettings.PortalId, dnnUser);

ApiResponse = new DnnApiResponse(true, "User Updated", user);

}

catch (Exception e)

{

ApiResponse = new DnnApiResponse(false, "User Update Failed: " + e.Message);

}

return Request.CreateResponse(HttpStatusCode.BadRequest, ApiResponse);

}
public HttpResponseMessage更新([FromBody]JObject jsonData)
{
var user=jsonData.ToObject();
var password=user.password;
var apiToken=user.Token;
HttpResponseMessage响应;
var pwd=密码;
//动态json=jsonData;
//JValue-apiToken=json[“apiToken”];
//JObject userJson=json[“用户”];
如果(密码==null)||
apiToken==null||
InitializeAppireQuest(apiToken.ToString(CultureInfo.InvariantCulture))!=null)
{
返回请求.CreateResponse(HttpStatusCode.BadRequest,ApiResponse);
}
//var user=userJson.ToObject();
用户信息dnuser;
//HttpResponseMessage响应;
如果(!updatednuserwithcmsuser(user,out dnuser,out response)){return response;}
尝试
{
DotNetNuke.Entities.Users.UserController.UpdateUser(PortalSettings.PortalId,dnuser);
ApiResponse=新的DnnApiResponse(真,“用户已更新”,用户);
}
捕获(例外e)
{
ApiResponse=newDNNAPIResponse(false,“用户更新失败:”+e.Message);
}
返回请求.CreateResponse(HttpStatusCode.BadRequest,ApiResponse);
}

我希望我清楚地回答了我提出的问题。请帮我解决这个问题。

DNN主要是编译的,代码驻留在各种DLL文件中

如果要更改用户帐户模块,则需要重新编译该模块,创建一个可安装的包,然后重新安装该模块

正如旁注一样,对核心功能进行更改是一个危险的提议,因为在升级时更改将被覆盖。您最好创建自己版本的任何模块,并安装它们以替换核心功能。这样,您就可以保证您使用的是“库存”DNN,并且在升级时不会丢失更改


另一方面,请注意,您应该知道DNN的当前版本是9.x。如果可能的话,使用当前版本是有意义的。

嗨,乔·克雷格,非常感谢你的回复。正如你提到的,比如创建一个可安装的包,然后重新安装模块。我不知道这个过程。是否有任何链接可用于创建包并将其重新安装到我的项目中。你能在这方面指导我吗。这将更有帮助,也更有价值。提前感谢。从Wrox提供的专业DNN书籍开始,并在亚马逊上提供。这些将为您提供DNN体系结构的详细信息。米奇·塞勒斯(Mitch Sellers)的专业DotNetNuke模块编程也是一个不错的选择,它将引导您实际构建模块。我还推荐Chris Hammond(Christoc)提供的免费模块开发模板,您可以从store.dnnsoftware.com下载。在dnnsoftware.com上还有很多资源,特别是wiki。还有一个文档中心正在开发中,其中包含有用的信息。非常感谢您宝贵的时间和指导。