sto cercando di migrare tutti i miei progetti C# di nuova Nuget ripristino automatico, seguendo questo tutorial: Migrating MSBuild-Integrated solutions to use Automatic Package RestoreNuget automatica per il sito web
ho fatto con successo ai miei progetti di desktop/biblioteche, che ho dovuto modificare csproj file, rimozione di queste linee da esso (non sto usando TFS):
<RestorePackages>true</RestorePackages>
...
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
...
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>
Tuttavia, siti web non sembrano avere alcuna csproj o qualsiasi altro file contenente queste istruzioni. Quando installo un pacchetto, inserisce con successo il file .dll nella cartella dei miei pacchetti, ma lo inserisce anche nella cartella bin. Se seleziono il dll sotto/bin all'interno di Esplora soluzioni, ha le seguenti proprietà:
Auto-refresh path: C:\mypackages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll
File Name: Newtonsoft.Json.dll
Full Path: C:\MyWebSite\Bin\Newtonsoft.Json.dll
Questa è impostato di default quando ho installare un pacchetto da NuGet. Penso che non dovrebbe guardare nella cartella bin, o quando costruisco il progetto, dovrebbe portare la cartella .dll in bin se non esiste. Il problema è che se costruisco il progetto senza .dll in bin, mi viene restituito il seguente errore: "Impossibile trovare il tipo o il nome dello spazio dei nomi 'Newtonsoft' (ti manca una direttiva using o un riferimento all'assembly?)". Per i progetti desktop/librerie, il file .dll viene copiato nella cartella bin.
Ho letto in un'altra domanda Nuget non supporta WebSite, ma Applicazioni Web invece: NuGet Package restore for website, ma ho anche letto nella pagina di Nuget che hanno aggiunto la compatibilità ai siti Web ASP.NET, quindi ecco la mia domanda: Sono io fare qualcosa di sbagliato? O dovrei migrare all'applicazione Web perché non supporta affatto i siti Web?
WAP è sicuramente la strada da percorrere. I siti web sono molto più limitati e in realtà non hanno molti vantaggi se si utilizza VS. Si noti che con il rilascio di ASP.NET 5, combinerà il meglio di entrambi i mondi. Comunque, ho usato NuGet con i siti web in passato. – mason