如果您有一个 ASP.NET 网站项目类型(没有正确的 .csproj 或 .vpproj 项目文件,并且只是一个松散文件的文件夹),那么当您使用 NuGet 添加一个包时,它会生成一个 *.dll Bin 目录中的 .refresh 文件以引用父包文件夹中的包的 dll。
例如,如果您从 Package Manager Console 执行“install-package elmah”,则 Elmah 被放置在项目解决方案目录中的 packages 文件夹中,而文件 Elmah.dll.refresh 被放置在项目的 Bin 文件夹中。
当我在本地构建项目时,Visual Studio 会自动拉入刷新文件引用的 DLL。该站点和 Elmah 运行正常。我没有将位于项目 Bin 目录中的 Elmah.dll 文件签入源代码管理(仅签入刷新文件和包文件夹)。
但是,我使用 Web 部署项目来预编译站点并为部署执行 web.config 替换。以这种方式构建解决方案时,Elmah.dll 不会自动拉入网站项目 Bin 目录,并且由于缺少 DLL,该网站无法正常运行。
NuGet 打算如何用于这种场景?我想检查 Bin 目录中的 Elmah.dll 吗?