如何在没有visual studio的情况下刷新ASP.NET应用程序中的引用?

时间:2009-05-15 13:03:24

标签: asp.net deployment .refresh

我有一个ASP.NET应用程序,它依赖于不在GAC中的外部程序集。该应用程序有一个.refresh文件,可在编译应用程序时将程序集复制到bin目录中。

当我在生产服务器上安装应用程序时(通过将应用程序文件复制到虚拟目录中),bin目录不会像我想象的那样通过.refresh文件的存在自动更新。我尝试使用aspnet_compiler工具,但这不起作用,因为它希望程序集已经在bin目录中。

如何在没有visual studio的情况下让.NET更新应用程序的bin目录?

3 个答案:

答案 0 :(得分:1)

.refresh文件就在那里,以便VS知道它应该跟踪原件,如果它们已经更改,则将新版本复制到/ bin文件夹。它们只是具有原始路径的文本文件 - 修改日期用于比较。

当你说:

  

当我在生产服务器上安装应用程序时(通过将应用程序文件复制到虚拟目录中),bin目录不会自动更新。

你到底是什么意思?您是否还要将bin目录的内容复制到生产服务器?您需要使用该应用程序部署任何依赖程序集。

答案 1 :(得分:0)

清除asp.net的缓存目录可能会有所帮助:

C:\WINDOWS\Microsoft.NET\Framework\
FRAMEWORK_VERSION\Temporary ASP.NET Files\YOUR_APP_NAME

答案 2 :(得分:0)

删除那些.refresh文件。

制作一个简单的构建脚本(使用你想要的任何cmd,NAnt,Rake,psake ......):

  • 将这些文件复制到您的asp.net app文件夹
  • 构建你的asp.net应用程序。

或者您可以编辑.csproj文件并添加如下内容:

<ProjectExtensions>
  <PropertyGroup>
    <PreBuildEvent>copy c:\path\to\dll\files $(ProjectDir)$(OutDir)</PreBuildEvent>
  </PropertyGroup>
</ProjectExtensions>

这将添加一个预构建操作,将您的dll文件复制到您的asp.net应用程序的输出目录。 你必须使用MsBuild构建它