web-dev-qa-db-ja.com

ソリューションからnugetパッケージの復元を削除します

「NuGetパッケージ復元を有効にする」を使用して、最近のnugetパッケージ復元機能をソリューションに追加しました。 http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

しかし、ビルドサーバーが破損し、修正する時間がありませんでしたので、削除したいと思いました。私が知る限り、そのためのオプションはないので、すべての* .csprojファイルから次の行を手動で削除しました。

<Import Project="$(SolutionDir)\.nuget\nuget.targets" />

問題は、*。csprojファイルがチェックアウトされるか、ソリューションを開くたびに、行が自動的に再び追加され、誤ってチェックインするとビルドが壊れることです:(

永久に削除する方法はありますか?

更新:以下の回答にもかかわらず、ソリューションを開いたときに戻ってきますが、同じ問題を抱えている人はいますか?

148
Wiebe Tijsma

私はあまりよく見えませんでした。プロジェクトファイルに追加された別のプロパティがあります。

<RestorePackages>true</RestorePackages>

すべての* .csprojファイルからこれらとすべての行を手動で削除する必要があります。

  <Import Project="$(SolutionDir)\.nuget\nuget.targets" />

更新:

プロジェクトファイルを手動で編集している場合、永続的な小さなバグですソリューションを閉じてプロジェクトからすべての行を一度に削除してください、そうでない場合は一度だけ追加されますプロジェクトがリロードされます...

PDATE2:

ソリューションルートから.nugetフォルダーも削除します

PDATE3:

NuGetの新しいバージョンでは、削除する必要がある別のセクションが追加されます。

 <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>

pdate4

NuGet.Targetsフォルダーにある.nuget内には、新しいプロジェクトに追加される別のセクションがあります... falseに切り替えます。

<!-- We need to ensure packages are restored prior to Assembly resolve -->
<BuildDependsOn Condition="$(RestorePackages) == 'false'">
    RestorePackages;
    $(BuildDependsOn);
</BuildDependsOn>
212
Wiebe Tijsma

Nuget Package Restoreを無効にするには:

  1. .nu​​getフォルダーを削除する
  2. すべての.csprojファイルから特定の行を削除する

削除する行:

<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
<RestorePackages>true</RestorePackages>

注:ソリューションをリロードする前に、すべての変更を一度に行うようにしてください。そうしないと、変更が再び追加されます。

これは、次の記事に基づいています: http://bartwullems.blogspot.no/2012/08/disable-nuget-package-restore.html

また、このオプションが無効になっていることを再確認することもできます。 http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

48
angularsen

ここでこの設定ではありませんか?

オプション...-> Nuget Package Manager-> [uncheck] Nugetに欠落パッケージのダウンロードを許可

enter image description here

Visual Studio Professional + Resharper 8.2を使用しています

8
orad

現在MSBuild統合パッケージの復元を使用しているソリューションは、自動パッケージ復元に移行できます。私が理解していることから、これはCIビルドの問題に直面している人々に役立つはずです。 (間違っている場合は修正してください)。

Nuget Webサイトのドキュメントを参照してください:MSBuild-Integratedソリューションを移行して自動パッケージ復元を使用する http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore =

TFSの有無にかかわらず変換するための情報があります。

David Ebboは、いくつかの情報も http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html に投稿しました。

5
James Bradt

実際にそれについてのブログ投稿があり、投稿の最後に移行に役立つpowershellスクリプトが言及されました。

http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore

3
Dan Liu

NuGetには、自動パッケージ復元への移行に関するブログ投稿があります。 http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore

ブログの投稿で参照されるpowershellスクリプトがあり、必要な行を自動的に削除するを処理します(および再帰的に): https://github.com/owen2/AutomaticPackageRestoreMigrationScript/blob/master/migrateToAutomaticPackageRestore.ps1

[NuGetパッケージの復元を無効にする]オプションを直接提供すると、[未修正]とマークされます: https://nuget.codeplex.com/workitem/188

3
Nitin Agarwal

私は2012年を使用しても受け入れられなかった解決策に従いました。しかし、これはうまくいきました。

  1. VSを完全に閉じます
  2. <RestorePackages>true</RestorePackages><RestorePackages>false</RestorePackages>に更新し、<Import Project="$(SolutionDir)\.nuget\nuget.targets" />行を削除します
  3. また、nuget.exeの名前をnuget.exe.NotExeに変更しました
2
Daryl

古いスタイルのNuGetパッケージの復元を使用してプロジェクトをクリーンアップする必要がある場合は、IFixツールが利用可能です here プロセスを自動化します。

インストーラーを実行するだけで(IFixPATHに追加されます)、次を実行します。

IFix nugetrestore --fix

最初にチェックモードで実行して、クリーンアップするものを確認できます。

IFix nugetrestore --check
2
Simon Fox

[$(SolutionDir)\.nuget\nuget.targets] .nugetフォルダーとその下にあるnuget.targetsファイルがあるソリューションディレクトリに移動し、フォルダーを削除し、最後にcsprojから削除行を変更します。

問題が再びバグになることはありません。

1
arvind

ソリューション内のpackages.configファイルを削除します。

1
Latency

同じ問題がありました。私がやったこと:1)ソリューションの各プロジェクトの.csprojファイルに移動し、メモ帳で開いてから、xmlの一部を削除して保存しました。

2)次に、ソリューション全体からpackage.configファイルをすべて削除しました。

3)その後、.nugetおよびpackageフォルダーを削除する必要がありました。

この時点で、NuGetが完全に無料のソリューションになりました。

4)次に、必要なDLLを手動で参照し、コンパイルを実行すると、NuGetパッケージが必要なく、ソリューションはチャンピオンのように実行されました。

1
Andy30acre

VS2012 RCでプロジェクトを開いているときに誤ってこの「パッケージの復元」オプションを有効にすると、次のようなエラーが表示され始めました。

「エラー1「C:\ FolderX\SomeProject.nuget\nuget.exe」が見つかりません」

エラーを修正するには、上記の手順に従い、各プロジェクトファイルをメモ帳で開いて、RestorePackage行を削除しました。

0
Dmitry Lyalin

次の手順を実行することで、この問題を解決できました。

1)現在チェックアウトされているすべてのファイル変更のバックアップを必ず取ってください。

2)C:\(TFSにマップされているパス)からソリューションフォルダーを物理的に削除します。

3)ソリューションのTFSから最新情報を入手します。

4)手順1で取得したバックアップから変更をコピーします(ある場合)。

それが役立つことを願っています!

0
Rajesh