asp.net - 将 NuGet 与 ASP.NET "Web Site"项目中的 *.dll.refresh 文件与 Web 部署项目一起使用

标签 asp.net web-deployment-project nuget build-server

如果你有一个 ASP.NET 网站项目类型(没有正确的 .csproj 或 .vpproj 项目文件,那只是一个松散文件的文件夹),那么当你用 NuGet 添加一个包时,它会生成一个 *.dll Bin 目录中的 .refresh 文件以引用父包文件夹中的包的 dll。

例如,如果您从包管理器控制台执行“install-package elmah”,那么 Elmah 将放置在项目解决方案目录中的包文件夹中,而文件 Elmah.dll.refresh 将放置在项目的 Bin 文件夹中。

当我在本地构建项目时,Visual Studio 会自动拉入刷新文件引用的 DLL。该站点和 Elmah 运行正常。我没有将位于项目 Bin 目录中的 Elmah.dll 文件 checkin 源代码管理(仅 checkin 刷新文件和包文件夹)。

但是,我使用 Web 部署项目来预编译站点并为部署执行 web.config 替换。以这种方式构建解决方案时,Elmah.dll 不会自动拉入网站项目 Bin 目录,并且由于缺少 DLL,网站无法正常运行。

NuGet 打算如何用于这种场景?我是否应该检查 Bin 目录中的 Elmah.dll?

最佳答案

这是基于 GC. 上面的解决方案。
添加类库 (csproj) 并在网站项目中引用该类库。
将 nuget 包添加到类库中。
在类库中,实际上引用了某个类文件中的 nuget 包 .也许创建一个一次性实例或其他东西。您可以使用包中包含的任何类。这会强制将 .dll 复制到网站项目中的 Bin 目录。

关于asp.net - 将 NuGet 与 ASP.NET "Web Site"项目中的 *.dll.refresh 文件与 Web 部署项目一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5976406/

相关文章:

visual-studio-2010 - Web 部署 : Exclude directories depending on Project Configuration name

jquery - 使用 NuGet 下载 jQuery 后如何使用

powershell - DotNet NuGet 推送导致 PowerShell 出现 TLS 错误

asp.net - 如果 session 正在使用中,单个 asp.net 用户是否可以一次发出多个请求?

c# - 从服务器或客户端检查或更改键盘输入语言

c# - ASP MVC 允许静态 html 文件

web-deployment-project - Web.config 转换变量

c# - 在 ASP.Net Gridview 中使用 session 变量

asp.net - Web 部署项目构建不再属于项目的文件

asp.net - NuGet 包还原不会为 asp.net 网站安装包