ASP.NET Web应用程序项目:如何将引用的DLL的依赖项复制到“Temporary ASP.NET Files”文件夹中?

时间:2010-10-12 19:30:10

标签: asp.net web-services

我有一个引用类库CL的Web应用程序项目WAP。 CL需要一些xml配置文件才能正常工作。

在WAP的csproj中,我添加了一个PostBuildEvent来将必要的XML文件复制到TargetDir。当我构建时,文件夹结构很好; bin文件夹包含CL和xml文件。

当我运行webservice时,CL会抛出一个错误,因为它找不到xml文件:

System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\accountreplication\284ca636\19f84c15\assembly\dl3\bf68503c\34888845_bd69cb01\XmlTemplates\Clusters.xml'.

根据我的阅读,ASP.NET将动态编译我的文件并将它们放在'Temporary ASP.NET'文件夹中。所以我的问题似乎是/ bin /文件夹中的xml文件没有复制到那个临时文件夹中。

有什么想法我应该怎么做以解决这个问题?要么复制临时文件夹中的xml文件,要么直接从/ bin /目录中实际提供文件(不确定是否可行)。理想情况下,我不想在/ bin /目录中添加环境变量。

谢谢!

3 个答案:

答案 0 :(得分:0)

尝试将XML文件添加为嵌入式资源,如果在visual studio中的XML文件上有属性,则可以选择更改它。

此致

伊恩

答案 1 :(得分:0)

对此不是100%肯定,但如果您转到解决方案中的xml文件的属性窗口,则应该能够将“复制到输出目录”设置为“始终复制”或“如果更新则复制”。这应该指示它将其复制到需要的地方。

答案 2 :(得分:0)

我们遇到了类似的问题,最后向appSettings添加了web.config键/值,我们的DLL用它来查找所需的文件。文件是手动复制的。

<configuration>
  ...
  <appSettings>
    <add key="sExeFolder" value="C:\Project\Support_Files"/>
  </appSettings>
  ...
</configuration>