hvaughan3
hvaughan3

Reputation: 11105

NuGet Automatic Restore And Installing NuGets

I recently successfully switched all of our projects over to automatic NuGet restore. To do this I followed this guide. Everything worked great, I was able to delete my /packages folder and restore to my heart's content.

One of the steps in that guide says to edit your .csproj file and remove the EnsureNuGetPackageBuildImports related element.

The problem I am having now is that, after going in and downgrading one of my projects libraries, NuGet seems to have automatically added the EnsureNuGetPackageBuildImports related element back into my .csproj file.

Is there some other setting I should be changing to prevent NuGet from doing this? I would rather not have to edit my .csproj file every time I make a NuGet related change.

Upvotes: 0

Views: 251

Answers (1)

Leo Liu
Leo Liu

Reputation: 76770

Is there some other setting I should be changing to prevent NuGet from doing this?

I`m afraid the answer is not if you going in and downgrading one of your projects libraries.

The target "EnsureNuGetPackageBuildImports" is used to ensures that the imported .props or .targets files are indeed imported in the old way "Enable Package Restore". NuGet has supported NuGet MSBuild support since NuGet 2.5.

Since Nuget 2.7+, Microsoft has dropped support for the 'Enable NuGet Package Restore' in VS2015 and you need to do some manual changes to either migrate old solutions or add the feature to new solutions. Nuget Automatic Package Restore has changed in Nuget 2.7+. Unfortunately, it looks like a non-backward compatible change. We have some developers on 2.7 and before who will now need to upgrade to 2.7+. In this case, NuGet will automatically added the EnsureNuGetPackageBuildImports related element back into your .csproj file when you going in and downgrading one of your projects libraries.

To resolve this, we advice that do not mix 'old' and new methods for automatic package restoration(Remove that files when you use automatic package restoration).

Besides, if going in and downgrading one of your projects libraries is unavoidable, there is a PS script can help you remove it more convenient: DisableNuGetPackageRestore.ps1

Upvotes: 1

Related Questions