我有一个ASP.NET应用程序,它依赖于不在GAC中的外部程序集。该应用程序有一个.refresh文件,可在编译应用程序时将程序集复制到bin目录中。
当我在生产服务器上安装应用程序时(通过将应用程序文件复制到虚拟目录中),bin目录不会像我想象的那样通过.refresh文件的存在自动更新。我尝试使用aspnet_compiler工具,但这不起作用,因为它希望程序集已经在bin目录中。
如何在没有visual studio的情况下让.NET更新应用程序的bin目录?
答案 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 ......):
或者您可以编辑.csproj文件并添加如下内容:
<ProjectExtensions>
<PropertyGroup>
<PreBuildEvent>copy c:\path\to\dll\files $(ProjectDir)$(OutDir)</PreBuildEvent>
</PropertyGroup>
</ProjectExtensions>
这将添加一个预构建操作,将您的dll文件复制到您的asp.net应用程序的输出目录。 你必须使用MsBuild构建它