C# 从asp.net上的另一个文件夹引用dotnetnuke.dll
我在服务器上的/root/dnn中有dotnetnuke门户,我正在c#VS2008中创建asp.net应用程序,需要在/root/app中上载 部署应用程序时,它需要从/root/dnn/bin而不是/root/app/bin引用dotnetnuke.dll程序集 如果不将应用程序文件放在/root/dnn中,我如何管理它C# 从asp.net上的另一个文件夹引用dotnetnuke.dll,c#,asp.net,assemblies,reference,dotnetnuke,C#,Asp.net,Assemblies,Reference,Dotnetnuke,我在服务器上的/root/dnn中有dotnetnuke门户,我正在c#VS2008中创建asp.net应用程序,需要在/root/app中上载 部署应用程序时,它需要从/root/dnn/bin而不是/root/app/bin引用dotnetnuke.dll程序集 如果不将应用程序文件放在/root/dnn中,我如何管理它 我尝试设置自动刷新路径,然后在上载后删除/root/app/bin/dotnetnuke.dll,以便应用程序尝试引用../dnn/bin/dotnetnuke.dll中缺
我尝试设置自动刷新路径,然后在上载后删除/root/app/bin/dotnetnuke.dll,以便应用程序尝试引用../dnn/bin/dotnetnuke.dll中缺少的程序集,但“应用程序未预编译”错误弹出,因此我尝试在不预编译的情况下上载它,但是仍然找不到引用。为什么不给你的应用它自己的副本呢?这将解决所有问题
换句话说,为什么要交叉应用程序引用?这违反了IIS和ASP.NET的所有安全机制毕竟,我必须上传门户文件夹中的.aspx和.aspx.cs文件以及dnn的bin文件夹中的bin文件,将web.config中的几行添加到dnn的web.config中,并通过使用数据集对象(即.xsd、.xss文件)从代码中写入查询来更改对数据库的查询。在上传之前,我还必须将我的App#代码复制到我的.cs文件中,因为在dnn的App#代码中无法同时编译C#和VS。我认为您尝试执行的最佳操作是将DotNetNuke.dll安装到服务器上的GAC中。我不相信ASP.NET/IIS会允许访问当前网站文件夹结构之外的任何程序集。正如紫色蚂蚁上面所说的那样
<configuration>
<runtime>
<assemblyBinding>
<probing privatePath="bin;bin2\subbin;bin3"/>
</assemblyBinding>
</runtime>
</configuration>
因为门户不使用自己的副本,所以我不能用它做一些与门户相关的事情,比如(new DotNetNuke.Entities.Modules.PortalModuleBase()).UserId。我希望即使你得到了工作的引用,你也不能这样做,因为它只是一个库,将加载到你的应用程序中,我将不得不编写一个dnn模块,但我已经尝试创建一个aspx页面并将其放入dnn文件夹中,对于已登录的用户,我在IFrame中的aspx页面将获取他的用户ID。dnn的有趣之处在于,我通过dnn门户添加了一个新页面,并将其命名为Report。然后我在那个页面上添加了IFrame,我在IFrame中加载的文件名为Report.aspx(来自我的应用程序)。起初我不明白为什么我的页面没有显示在IFrame中,而是递归地显示自己,直到我注意到相同的名称如果你可以在App#Code文件夹中将C#和VB放在一起,你只需在web.config中的Code子目录中添加一个元素,将其与C#一起编译,这样它就可以单独编译了。谢谢你提供的信息,我希望在将来的情况下记住它