Eri*_*k T 6 asp.net teamcity webforms vs-web-site-project nuget
我有许多ASP.NET Web窗体网站(没有.csproj文件的网站),我试图弄清楚如何最好地使用NuGet包.使用Visual Studio 2015时,通过UI添加NuGet包可以正常工作(站点根目录中有packages.config),并且构建会将二进制文件放在bin文件夹中.
问题是尝试通过MSBuild在TeamCity上构建项目.对于其他项目,我可以将NuGet.exe与restore命令一起使用(对csproj或sln文件),并正确下载包并将其包含在输出中.但是,这不适用于网站,因此编译因缺少文件而失败.
作为最后的手段,我可以编写一个自定义脚本/构建步骤来手动将程序集复制到bin文件夹,但我想避免这种情况.我错过了什么吗?有没有办法将NuGet用于Visual Studio之外的网站?
一段时间后,我有一个解决方法可以让我到达我需要的地方,尽管不是最好的方式。
在较新版本的 Visual Studio 中,当通过 VS 将二进制依赖项添加到网站时,它会将 (binaryfile).dll.refresh 文件与二进制文件一起添加到 bin 文件夹中。该文件的内容是通过解决方案的包文件夹到 .dll 的相对路径。此外,还向网站添加了一个packages.config 文件。
让它在 CI 服务器上构建的方法是:
这不是一个很好的解决方案,因为我现在必须多次调用 NuGet restore(一次用于解决方案,一次用于每个网站),但它确实有效。我不知道支持多远的 .refresh 文件,但它在 2015 年确实有效。我可能会在 NuGet 中提出更改请求,以允许通过命令行传入多个解决方案/packages.configs。
谢谢,埃里克
| 归档时间: |
|
| 查看次数: |
1609 次 |
| 最近记录: |