ASP.NET - 访问复制的内容

时间:2010-04-05 20:02:15

标签: c# asp.net

我有一个类库项目,其中包含一些使用“Copy if newer”复制构建操作配置的内容文件。这会导致文件被复制到解决方案中每个项目的...\bin\下的文件夹中。在同一个解决方案中,我有一个ASP.NET Web项目(顺便说一下,它是MVC)。在库中,我有一个静态构造函数将文件加载到Web项目可访问的数据结构中。以前我一直将内容作为嵌入式资源包含在内。我现在需要能够在不重新编译的情况下替换它们。我想在三种不同的上下文中访问数据:

  1. 单元测试库程序集
  2. 调试Web应用程序
  3. 在IIS中托管网站
  4. 对于单元测试,Environment.CurrentDirectory指向包含复制内容的路径。但是在调试时,它指向C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE。我还查看了Assembly.GetExecutingAssembly().Location指向C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\c44f9da4\9238ccc\assembly\dl3\eb4c23b4\9bd39460_f7d4ca01\的内容。我需要的是webroot \bin文件夹的物理位置,但由于我是库项目中的静态构造函数,因此我无法访问Request.PhysicalApplicationPath

    是否有其他环境变量或结构,我总能找到“Copy if newer”文件?

1 个答案:

答案 0 :(得分:1)

Assembly.Location确实指向装配后进行阴影复制的位置。

但是,该MSDN页面声明:

  

要在文件被影子复制之前获取位置,请使用CodeBase property