首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.Net中的dll.refresh文件是什么?

ASP.Net中的dll.refresh文件是什么?
EN

Stack Overflow用户
提问于 2010-11-04 00:19:23
回答 2查看 46.1K关注 0票数 85

在我们的ASP.Net web项目中,我们似乎有一些.refresh文件与我们正在使用的一些第三方Dlls相关联。你知道它们是什么吗?它们是如何/何时创建的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-04 00:25:25

这些文件提供了相关DLL的路径,以告诉Visual Studio在哪里可以找到它(如果您在文本编辑器中打开它们,则可以检查这一点)。每次向项目添加新引用时,都会创建它们。

当您使用不创建标准Visual Studio项目文件的项目类型时,它们通常会出现,因为引用的DLL的路径通常会放在其中。

票数 67
EN

Stack Overflow用户

发布于 2016-04-12 05:27:22

试错后有关刷新文件的一些信息。这些实验是用Visual Studio 2012完成的。这些引用已添加到C# asp.net web项目中。

如前所述,通过浏览添加对程序集的引用会添加一个.refresh文件。但是,如果在从中添加的目录中显式添加的DLL上存在其他依赖DLL,则也会隐式添加依赖项,但不会添加.refresh文件!例如,我添加了一个对"MyAssembly.dll“的引用,我也会得到"MyAssembly.dll.refresh”。但是,如果存在"MyAssembly.dll“所依赖的程序集"MyDependentAssembly.dll”,我将不会得到"MyDependentAssembly.dll.refresh“。所以发生的事情是,一个程序集被刷新,但它的依赖项却没有!您必须以与依赖项相反的顺序一次添加一个DLL,这样事情就会运行得更好。

还有一些需要注意的事情。添加"MyAssembly.dll“也会添加"MyAssembly.pdb”(如果存在)。此外,"MyAssembly.xml“将被添加到引用中(如果存在)。当"MyAssembly.dll.refresh“出现时,这两个文件也会刷新。

但是,Visual Studio何时决定查找刷新文件呢?现在请记住,在web项目中,项目文件并不专门跟踪引用的DLL。您将找不到项目文件中仅列出项目依赖项的DLL。那么刷新是什么时候发生的呢?

何时发生刷新的答案是在必须加载引用的程序集的生成期间。这意味着,尽管构建一个预先构建的可更新的网站可能无法获取所有的all。我一直有一个不会刷新的动态链接库,然后我意识到它只在.ascx文件中使用。在MSBuild选项项目页面中取消选中“允许预编译站点可更新”复选框为我解决了这个问题。

但是,如果在代码中添加通过反射加载的引用DLL,它们将不会通过引用进行更新。您必须使用构建事件将它们复制到bin目录中。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4089165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档