从asp.net上的另一个文件夹引用dotnetnuke.dll

时间:2009-07-22 11:21:37

标签: c# asp.net assemblies reference dotnetnuke

我在/ root / dnn服务器上有dotnetnuke门户网站,我在c#VS2008中创建了我需要在/ root / app上传的asp.net应用程序。

当我部署我的应用程序时,它需要从/ root / dnn / bin而不是/ root / app / bin引用dotnetnuke.dll程序集。

如何在不将应用程序文件放入/ root / dnn?

的情况下管理它

我尝试设置自动刷新路径,然后在上传后删除/root/app/bin/dotnetnuke.dll,以便应用程序尝试引用../dnn/bin/dotnetnuke.dll中缺少的程序集但是“应用程序未预编译”错误弹出,所以我尝试上传它而不进行预编译,但仍无法找到引用。

4 个答案:

答案 0 :(得分:2)

为什么不给你的应用程序自己的副本?这将解决所有问题...

换句话说,为什么跨应用程序引用?它违反了IIS和ASP.NET的所有安全机制

答案 1 :(得分:2)

正如紫蚂蚁上面所说,

  1. 将DotNetNuke程序集加载到GAC中(这很麻烦,因为它阻止您以后能够通过XCOPY升级DNN)。
  2. 将您的应用程序放入DNN应用程序文件夹(听起来就像您所做的那样)
  3. 将DNN dll复制到您的app文件夹中。 (最常见的解决方案)
  4. 您正在考虑的是配置文件的<probing privatePath="" />元素。但我认为它不适用于网络应用程序,并且(根据文档)仅适用于子文件夹。

    <configuration>
       <runtime>
          <assemblyBinding>
             <probing privatePath="bin;bin2\subbin;bin3"/>
          </assemblyBinding>
       </runtime>
    </configuration>
    

答案 2 :(得分:0)

毕竟,我必须在dnn的bin文件夹中的portal文件夹和bin文件中上传.aspx和.aspx.cs文件,将我的web.config中的几行添加到dnn的web.config中,并将查询更改为数据库使用数据集对象(即.xsd,.xss文件)从代码中编写它们。我还必须在上传之前将我的App_Code中的代码复制到我的.cs文件中,因为C#和VS无法在dnn的App_Code中一起编译。

答案 3 :(得分:0)

我认为您最好的选择是将DotNetNuke.dll安装到服务器上的GAC中。我不相信ASP.NET / IIS会允许访问当前网站文件夹结构之外的任何程序集。