为什么我的ASP.NET DLL在“Temporary ASP.NET Files”文件夹中在重建时没有得到更新?

4
我正在开发一个DLL,用于我所使用的webservice。我添加了一些新代码,并希望通过NUnit测试套件进行编译和调试。我已经采取的步骤如下:
1. 在Visual Studio 2008中编写我的代码,输出目录指向我的应用程序bin目录(C:\Program Files\etc...)。
2. 当我启动我的webservice进程并附加到它时,会收到警告,表示我的程序没有构建调试信息。我发现如果将.pdb文件复制到C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\...目录中,那么我就可以避免这个警告,但仍然无法进入我的代码部分。
3. 我停止了我的应用程序,重新构建了我的DLL,然后重新启动了Web应用程序。
4. 进一步检查后,我发现当我通过进程资源管理器停止我的应用程序并删除Temporary ASP.NET目录下的子目录时,重新启动进程时子目录会被重新创建,但它们不包含我刚刚构建的新DLL版本,而是旧版本的DLL,也没有PDB文件。
总之,我的问题是如何让Visual Studio在临时ASP.NET目录中同时构建和更新DLL?更重要的是,如何让Visual Studio自动将PDB文件复制到相同的临时目录中,而无需任何批处理帮助?
理想情况下,我希望避免将我的DLL自动复制到临时目录中,但是通过今天的搜索,我没有找到任何适合的方法来做到这一点,因为ASP内部机制相当超出了我的控制范围。
注意:当我通过外部可执行文件访问我的webservice时,我已将NUnit的影子复制功能禁用。

确保构建过程具有访问该文件夹的权限。 - Esteban Araya
它们不会被构建到这个文件夹中,它们会被构建到 C:\Program Files\MyApp\Bin 文件夹中,当应用程序启动时,ASP.NET 内部将其复制到那里。 - wfoster
你是否将 optimizeCompilations 标志设置为 true?我有一个类似的问题:http://stackoverflow.com/questions/6201447/iis-caching-project-reference-binaries - Matt Evans
1个回答

0

我已经解决了这个问题,需要将它构建到ASP.NET网站的bin目录中,以便获取新的DLL文件。将输出路径从C:\Program Files\MyApp\Bin更改为C:\Program Files\MyApp\MyWebService\Bin,这似乎解决了我遇到的问题,并且新的DLL文件被复制,所有调试工作都正常。

干杯!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接