![](/img/trans.png)
[英]Reinstall NuGet packages for ASP.NET Website outside Visual Studio
[英]How to use NuGet packages with an ASP.NET Website on CI Server
我有許多ASP.NET Web表單網站(一個沒有.csproj文件的網站),並且我試圖找出如何最好地與它們一起使用NuGet程序包。 使用Visual Studio 2015時,通過UI添加NuGet程序包可以正常工作(網站根目錄中有packages.config),並且該版本將二進制文件放入bin文件夾中。
問題是試圖通過MSBuild在TeamCity上構建項目。 對於其他項目,我可以將NuGet.exe與restore命令一起使用(針對csproj或sln文件),並且軟件包已正確下載並包含在輸出中。 但是,這不適用於網站,因此由於缺少文件而導致編譯失敗。
作為最后的選擇,我可以編寫一個自定義腳本/構建步驟以將程序集手動復制到bin文件夾,但是我想避免這種情況。 我想念什么嗎? 是否可以在Visual Studio之外的網站上使用NuGet?
一段時間后,盡管不是最佳方式,但我有一種解決方法可以使我到達需要的位置。
在Visual Studio的較新版本中,通過VS將二進制依賴項添加到網站時,它會將(binaryfile).dll.refresh文件添加到二進制文件旁邊的bin文件夾中。 該文件的內容是通過解決方案的packages文件夾到.dll的相對路徑。 此外,packages.config文件已添加到網站。
將其構建在CI服務器上的方法是:
這不是一個很好的解決方案,因為我現在必須多次調用NuGet restore(一次解決方案,每個網站一次),但是它確實有效。 我不知道支持.refresh文件多久,但是它在2015年確實可以工作。我可能會在NuGet中發出更改請求,以允許通過命令行傳遞多個solution / packages.configs。
謝謝,埃里克
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.