4

まず最初に、Nuget が素晴らしいことから始めましょう。大好きです。そうは言っても、私が発見したばかりで、本当に非常に迷惑になっていることが1つあります.

ほぼすべてのプロジェクトで使用する社内フレームワークがあります。そのため、最近、VSIX とともに Visual Studio プロジェクト テンプレートを作成しました。Nuget が原因で途中でいくつかの問題がありました。テンプレートがフレームワークを参照しているときに、テンプレートから新しいプロジェクトを作成しませんでした。フレームワークが Nuget を使用しており、テンプレートから作成された新しいプロジェクトで Nuget フォルダーが見つからなかったためです。したがって、解決策は、フレームワーク プロジェクトから nuget を削除し、他のプロジェクト (フレームワーク以外) には Nuget のみを使用することでした。わかりました、素晴らしい..これで問題は解決しました!

ただし、Nuget マネージド プロジェクトを開くたびに、次の 2 行がフレームワークの .csproj に自動的に追加されます。

<RestorePackages>true</RestorePackages>

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

テンプレートを再構築するたびに、Nuget の使用を完全に停止するか、フレームワークの .csproj ファイルからこれらの行を削除し続ける必要があるため、これはイライラします。

ソリューション内の 1 つのプロジェクトを無視するように Nuget に指示する方法はありますか? 私の場合、フレームワーク プロジェクトを無視するには...

4

1 に答える 1

1

Nailuj からの提案と、ここで見つけたものからの提案: http://samritchie.net/2012/09/17/nuget-packages-in-vs2012-templates/、うまくいくと思うことを試しましたが、うまくいきませんでした私のニーズに応えません。その方法は、新しいプロジェクトにパッケージを含めるためのものであり、私にとっては役に立たず、問題を解決しません (.nuget ターゲットフォルダーが見つからないというエラー)。それで、私はそれで少し遊んで、理想的ではありませんが許容できるものを思いつきました:

  1. テンプレートとして機能するプロジェクトから、Nuget に関係するすべてのものを削除します。これにより、参照されているフレームワークで問題が発生します。これは、フレームワーク プロジェクトが Nuget によって管理されることを期待しているのに対し、このソリューションからはそうではないため、エラーが発生するためです...そのため:
  2. ソリューションからフレームワーク プロジェクトを削除し、DLL のみを参照してビルドするようにしますが、nuget フォルダーの欠落について文句を言うことはありません。
  3. 再構築
  4. テンプレートにエクスポート
  5. エクスポートされたテンプレートを使用して VSIX をビルドする
  6. テンプレートのインストール
  7. 新しくインストールしたテンプレートから新しいプロジェクトを作成する
  8. 新しいプロジェクトのソリューションで Nuget パッケージの復元を有効にする
  9. パッケージ マネージャー コンソールを開く
  10. 不足しているパッケージに関するメッセージを通知し、それらをダウンロードしてインストールすることに同意します (約 1 分)
  11. フレームワーク DLL 参照を削除し、実際のプロジェクトに置き換えます (右クリックして既存のプロジェクトを追加)。
  12. 再構築して実行
  13. 祝う!

これが、この苦境に陥っている可能性のある他の人の助けになることを願っています。誰かがより良いアイデアを持っている場合は、私に知らせてください。報奨金はまだ 6 日間開いているので、まだ回答としてマークしません。

于 2013-04-18T15:35:11.493 に答える