一部のプロジェクトが複数のソリューションに含まれている場合に、すべてのソリューションに共通のnugetパッケージフォルダーを設定する


137

私はNuGetを使用して、外部および内部のパッケージソースからパッケージを取得しています。これは非常に便利です。しかし、パッケージはデフォルトでソリューションごとに保存されることに気づきました。これは、NuGet参照を持ついくつかのプロジェクトがいくつかのソリューションに含まれている場合、非常にイライラします。次に、参照が他のソリューションパッケージフォルダーに変更されます。このフォルダーは、実際には別の開発者やビルドマシンでは使用できない場合があります。

NuGetのリリース2.1では、一般的なパッケージの場所(おそらくプロジェクトのルートレベルで、TFSソース管理を使用している)を指摘する方法があることを確認しましたリリースノートを参照してください。NuGet v2.7を使用しています

しかし、私はこれの影響を見ずにnuget.configファイルを追加しようとしました。パッケージは引き続きソリューションフォルダーに保存されます。私が見逃したものはありますか?誰がその質問に答えているかに応じて、nuget.configファイルに追加するXMLノードの構造が異なるようです:Schwarzieは別のStackoverflowスレッドで提案しています

<settings>
  <repositoryPath>..\..\[relative or absolute path]</repositoryPath>
</settings>

NuGet 2.1のリリースノート(上記のリンクを参照)は、この形式を提案しています。

<configuration>
  <config>
    <add key="repositoryPath" value="..\..\[relative or absolute path]" />
  </config>
</configuration>

これらのどちらか、またはどちらか、または両方が最終的に機能するかわかりません。私はソリューションレベルで両方を試しました。nuget.configファイルはTFSプロジェクトのルートレベルに配置できますか、それともソリ​​ューションディレクトリに配置する必要がありますか?NuGetはこれらのファイルから特定の順序で設定を読み取って適用しているようですが、ソリューションレベルのnuget.configファイルがTFSプロジェクトのルートレベルのファイルを上書きするため、これらのファイルをいくつかのレベルで追加するのが理にかなっています。これを明確にできますか?

これらの参照が機能する前に、インストールされているすべてのパッケージを削除する必要がありますか?ソリューション固有のnugetの使用法から、いくつかのソリューションに属するプロジェクトが必要なnugetパッケージを見つけることができる共通のパッケージフォルダーに移動するためのステップバイステップの指示を誰かが提供できたら嬉しいです。


3
あなたの質問に対する短い答え(以下のVermisの答えに隠されています)は$、相対パスの前にが欠けていたというものだと思います。また、NuGet.Configファイルに関する質問への回答はこちらです。それ.nu​​getの最初のルックス、そして、すべての親ディレクトリに、そしてあなたのAppDataで「グローバル」ファイルに:その後、(どんな逆の順序でそれらを適用している手段)。
ベンジョル

これは難しいようです。この問題を解決できるPaketというツールがあります:fsprojects.github.io/Paket
Tuomas Hietanen

遅いコメント。nuget.configファイルはVSの起動中に読み取られるように見えるため、この変更を開始するときにVisual Studioを実行している場合は、Visual Studioを再起動する必要があることを追加したかっただけです。また、$がなくても問題はありませんでした。バックスラッシュで始めないでください。
MBWise 2017年

回答:


147

複数のソリューションで参照されているプロジェクトを含む外部および内部のパッケージソースで同様の状況があります。今日、コードベースの1つでこれを動作させたところ、開発者のワークステーションとビルドサーバーで動作しているようです。以下のプロセスでは、このシナリオを念頭に置いています(ただし、他の場所に共通パッケージフォルダーを配置するように適応させるのは難しくありません)。

  • コードベース
    • プロジェクトA
    • プロジェクトB
    • プロジェクトC
    • ソリューション
      • 解決策1
      • 解決策2
      • 解決策3
      • パッケージ(これはすべてのソリューションで共有される一般的なパッケージです)

Visual Studio 2015 Update 3でNuGet 3.5.0.1484以降の回答を更新

このプロセスは、私が最初にこれに取り組み、これを更新するときだと思ったときよりも少し簡単になりました。一般に、プロセスは同じですが、手順が少なくなります。結果は、以下を解決または提供するプロセスです。

  • ソースコード管理にコミットする必要のあるすべてのものが表示され、ソリューションで追跡されます
  • Visual Studioのパッケージマネージャーを使用して新しいパッケージをインストールまたはパッケージを更新すると、正しいリポジトリパスが使用されます
  • 初期構成後、.csprojファイルのハッキングはありません
  • 開発者用ワークステーションの変更なし(コードはチェックアウト時にビルドできる状態です)

知っておくべきいくつかの潜在的な欠点があります(YMMVにはまだ経験していません)。ベノールを参照してください以下の回答とコメントを。

NuGet.Configを追加する

\ Solutions \フォルダーのルートにNuGet.Configファイルを作成します。これが作成するUTF-8エンコードファイルであることを確認します。これを行う方法がわからない場合は、Visual Studioの[ファイル]-> [新規]-> [ファイル]メニューを使用して、XMLファイルテンプレートを選択してください。以下をNuGet.Configに追加します。

<?xml version="1.0" encoding="utf-8"?>
<configuration>  
  <config>
    <add key="repositoryPath" value="$\..\Packages" />
  </config>
</configuration>

repositoryPath設定では、$トークンを使用して絶対パスまたは相対パス(推奨)を指定できます。$トークンは、NuGet.Configが配置されている場所に基づいています($トークンは、実際には1つ下のレベルを基準にしています。にはNuGet.Configの場所のの)。したがって、\ Solutions \ NuGet.Configがあり、\ Solutions \ Packagesが必要な場合は、値として$ \ .. \ Packagesを指定する必要があります。

次に、「NuGet」のようなソリューションにソリューションフォルダーを追加します(ソリューションを右クリックして、[追加]、[新しいソリューションフォルダー]の順にクリックします)。ソリューションフォルダーは、Visual Studioソリューションにのみ存在する仮想フォルダーであり、ドライブ上に実際のフォルダーを作成しません(どこからでもファイルを参照できます)。"NuGet"ソリューションフォルダーを右クリックし、[追加]、[既存のアイテム]の順にクリックして、\ Solutions \ NuGet.Configを選択します。

これを行う理由は、それがソリューションに表示され、ソースコード管理に適切にコミットされていることを確認するのに役立つためです。共有プロジェクトに参加しているコードベースのソリューションごとに、この手順を実行することができます。

NuGet.Configファイルを.slnファイルの上にある\ Solutions \に配置することにより、NuGetがフォルダー構造を「現在の作業ディレクトリ」から上方向に再帰的に移動して、使用するNuGet.Configファイルを探します。「現在の作業ディレクトリ」とは、ここでは2つの異なることを意味します。1つはNuGet.exeの実行パスで、もう1つは.slnファイルの場所です。

パッケージフォルダを切り替える

まず、各ソリューションフォルダーを確認し、存在する\ Packages \フォルダーを削除することを強くお勧めします(最初にVisual Studioを閉じる必要があります)。これにより、NuGetが新しく構成された\ Packages \フォルダーを配置している場所を簡単に確認できるようになり、間違った\ Packages \フォルダーへのリンクが失敗し、修正できるようになります。

Visual Studioでソリューションを開き、Rebuild Allを開始します。表示されるすべてのビルドエラーを無視します。これは現時点で予想されることです。ただし、これにより、ビルドプロセスの開始時にNuGetパッケージの復元機能が開始されます。\ Solutions \ Packages \フォルダーが目的の場所に作成されていることを確認します。表示されていない場合は、構成を確認してください。

ここで、ソリューションの各プロジェクトについて、次のことを行います。

  1. プロジェクトを右クリックし、[プロジェクトのアンロード]を選択します
  2. プロジェクトを右クリックし、[your-xxx.csprojの編集]を選択します。
  3. \ packages \への参照を見つけて、新しい場所に更新します。
    • これらのほとんどは<HintPath>参照ですが、すべてではありません。たとえば、WebGreaseとMicrosoft.Bcl.Buildには、更新が必要な個別のパス設定があります。
  4. .csprojを保存し、プロジェクトを右クリックして、[プロジェクトの再読み込み]を選択します。

すべての.csprojファイルが更新されたら、別の[すべて再構築]を開始すると、参照の欠落に関するビルドエラーが発生しなくなります。これで完了です。共有パッケージフォルダーを使用するようにNuGetが構成されました。

NuStudio 2.7.1(2.7.40906.75)とVStudio 2012

まず覚えておくべきことは、nuget.configはnugetパッケージシステムのすべてのパス設定を制御するわけではないということです。これは理解するのに特に混乱しました。具体的には、msbuildとVisual Studio(msbuildを呼び出す)がnuget.configのパスを使用せず、nuget.targetsファイルでパスを上書きしていることが問題です。

環境の準備

まず、ソリューションのフォルダーを調べ、存在するすべての\ packages \フォルダーを削除します。これは、すべてのパッケージが正しいフォルダーに目に見える形でインストールされていることを確認し、ソリューション全体で不正なパス参照を発見するのに役立ちます。次に、最新のnuget Visual Studio拡張機能がインストールされていることを確認します。また、各ソリューションに最新のnuget.exeがインストールされていることも確認します。コマンドプロンプトを開き、各$(SolutionDir)\ .nuget \フォルダーに移動して、次のコマンドを実行します。

nuget update -self

NuGetの共通パッケージフォルダーパスの設定

各$(SolutionDir)\ .nuget \ NuGet.Configを開き、<configuration>セクション内に以下を追加します。

<config>
    <add key="repositorypath" value="$\..\..\..\Packages" />
</config>

注:絶対パスまたは相対パスを使用できます。$を含む相対パスを使用している場合は、NuGet.Configの場所の 1つ下レベルに相対的であることに注意してください(これはバグであると考えてください)。

MSBuildとVisual Studioの共通パッケージフォルダーパスの設定

各$(SolutionDir)\ .nuget \ NuGet.targetsを開き、次のセクションを変更します(Windows以外の場合は、その下に別のセクションがあることに注意してください)。

<PropertyGroup Condition=" '$(OS)' == 'Windows_NT'">
    <!-- Windows specific commands -->
    <NuGetToolsPath>$([System.IO.Path]::Combine($(SolutionDir), ".nuget"))</NuGetToolsPath>
    <PackagesConfig>$([System.IO.Path]::Combine($(ProjectDir), "packages.config"))</PackagesConfig>
    <PackagesDir>$([System.IO.Path]::Combine($(SolutionDir), "packages"))</PackagesDir>
</PropertyGroup>

PackagesDirを更新して

<PackagesDir>$([System.IO.Path]::GetFullPath("$(SolutionDir)\..\Packages"))</PackagesDir>

注: GetFullPathは、相対パスを絶対パスに解決します。

すべてのnugetパッケージを共通フォルダーに復元する

コマンドプロンプトを開き、各$(SolutionDir)\ .nugetに移動して、次のコマンドを実行します。

nuget restore ..\YourSolution.sln

この時点で、共通の場所に\ packages \フォルダーが1つあり、ソリューションフォルダー内にはありません。そうでない場合は、パスを確認してください。

プロジェクト参照の修正

すべての.csprojファイルをテキストエディターで開き、\ packagesへの参照を見つけて、正しいパスに更新します。これらのほとんどは<HintPath>参照ですが、すべてではありません。たとえば、WebGreaseとMicrosoft.Bcl.Buildには、更新が必要な個別のパス設定があります。

ソリューションを構築する

Visual Studioでソリューションを開き、ビルドを開始します。復元する必要のある不足しているパッケージについて不平を言っている場合は、パッケージが不足していて復元する必要があると思い込まないでください(エラーは誤解を招く可能性があります)。.csprojファイルの1つでパスが正しくない可能性があります。パッケージを復元する前に、まずそれを確認してください。

不足しているパッケージに関するビルドエラーがありますか?

.csprojファイルのパスが正しいことをすでに確認している場合は、2つの方法を試すことができます。これがソースコード管理からコードを更新した結果である場合は、クリーンコピーをチェックアウトしてからビルドしてみてください。これは私たちの開発者の1人にとってはうまくいき、.suoファイルまたは類似のものにアーティファクトがあったと思います。もう1つのオプションは、問題のソリューションの.nugetフォルダーにあるコマンドラインを使用して、パッケージの復元を手動で強制することです。

nuget restore ..\YourSolution.sln

私の長い問題に対する長い回答をありがとう。私はこの解決策を試して、あなたに戻ります。
Mats Isaksson 2013年

両方の.slnを同じディレクトリに置くことはできますか?彼らは同じパッケージディレクトリを共有することになりますか?
tofutim 2013

7
この答えは、nugetがいかに厳密であるかを示していると思います。そのような単純な概念を可能にするために、そのような複雑で堅固な構造を作成する必要があります。「ソリューション間で同じアセンブリを共有する」ことは、全体の設計が悪いことを示しています。
ミック

1
ヒントパスを修正するために何が機能するか-NuGet.configを好みに更新した後、パッケージマネージャーコンソールで "Update-Package -reinstall"を実行します。これにより、すべてのパッケージが再インストールされ、ヒントパスも修正されます。この後、あなたはいくつかの遺物を残すかもしれません(私はいくつかのSilverlightプロジェクトにありました-ターゲット/ビルドの「古い」インポートはまだそこにありました)
johannes.colmsee

1
@Vermisすべてのソリューションに共通のnugetパッケージフォルダーをセットアップした場合。Azure Devopsビルドへの影響は何ですか?
Pankaj Devrani

39

すべてのプロジェクトに共通のパッケージの場所を設定する代わりに、プロジェクトのHintPathを次のように変更することもできます。

<HintPath>$(SolutionDir)\packages\EntityFramework.6.1.0\lib\net40\EntityFramework.dll</HintPath>

ほとんどの場合、共有プロジェクトには少数のパッケージしかないため、簡単に変更できます。

コードを分岐するとき、共通のリポジトリを設定するとき、相対パスを変更する必要があります。このソリューションでは、これを行う必要はありません。


2
アダムは正しいです。これは、信じられないほどの愚かな問題に対する最も単純な解決策です。
ラプサス2015年

1
それは素晴らしいソリューションです。コードの構造を再構築する必要がないシンプルで明確なものです。
RredCat

2
AFAIK $(SolutionDir)は、ビルドがVSを介して行われる場合にのみ設定されます。つまり、/ p:SolutionDir = pathを設定しない限り、msbuild.exeを介して直接ビルドすることはできません
Lars Nielsen

これはここで自動的に設定できます%APPDATA%\ Roaming \ NuGet \ NuGet.Config
Korayem

15
これは、パッケージを更新し、HintPathを新しい相対パスで上書きするまで、うまく機能します。多数のパッケージを含む大規模なソリューションでは、かなり退屈になります。神はあなたが更新パッケージを実行しなければならないことを禁じます

22

NuGetの最新バージョン(2.7)とVS2012でこれを試した私の経験:

  • .nu​​getフォルダーを削除します(ディスク上およびソリューション内)
  • NuGet.Configファイルをすべてのソリューションの共通の親フォルダーに配置する
  • 既存のパッケージフォルダを削除します
  • すべてのcsprojファイルを調べ、HintPathsを変更して新しい場所を指すようにします。
  • 利益

私の場合、すべてのパッケージをに入れたかった.packagesので、NuGet.Configは次のようになります。

 <?xml version="1.0" encoding="utf-8"?>
 <configuration>
   <config>
     <add key="repositorypath" value=".packages" />
   </config>
 </configuration>

発生する可能性のある「奇妙な」ことがいくつかありますが、それらは耐えられると思います。

  • あるソリューションからパッケージを「更新」すると、古いバージョンがパッケージフォルダーから即座に削除されます(そこを指している別のソリューションがあるかどうかはわかりません)。他の解決策は必要なときに復元するだけなので、これはそれほど気になりません。
  • ソリューションを右クリックしてパッケージから追加しようとした場合、パッケージが別のソリューションにすでに存在していると、そこにあることがわかり、「インストール」ボタンの代わりに「緑のチェックマーク」が表示されます。私は通常プロジェクトの右クリックからインストールするので、これはまったく気になりません。

免責事項:私は今日これを試しました、私はそれをバックアップするための長期的な経験がありません!


4
これは推奨される方法です。受け入れられた答えでn​​uget復元を行う古いmsbuild統合方法はピタです。slnと一緒にNuGet.configを配置すると、自動パッケージ復元で機能することを確認できます。共通の親ディレクトリに配置することは確認できません。
2015年

1
NuGet.Configをすべてのソリューション(TFS内)の共通の親フォルダーに配置して、それらが参照できるようにする方法は?私が知っている唯一の方法は、nuget.configファイルを持つすべてのソリューションの下の.nugetフォルダーです。"repositorypath value = .packages"の場合、C:\ TFS \ Comp \ Ent \ SolABC \ .nuget \ .packagesのように.nugetの下にサブフォルダーを作成します-これはネストされたプロジェクト/ソリューションをきれいに解決しませんこれは自動TFSビルドでも機能するはずです。。受け入れ答えは、いくつかの手でコード化された作品に加え、「リポジト値= $ \ .. \ .. \ .. \異なる相対パスを持つネストされたプロジェクトがある場合、これは仕事をしないパッケージが必要です
HB0

2
Visual Studioの2015年Nuget 3.4.3で動作します
フセインYağlı

古いパッケージをすぐに削除するだけでなく、csprojファイルにハンドコーディングしたHintPathを上書きして破壊します。@ hB0は正しいです。これは、比較的単純なソリューションでのみ機能します。ブランチ、共有プロジェクトなどを含む複雑なTFSワークスペース構造に入ると、効率的なスケーリングに失敗します。
gravidThoughts 2016

20

VS 2013でNuGetバージョン2.8.50926を使用しています。複数のnuget.configファイルを使用したり、複雑なディレクトリ構造を使用したりする必要はありません。ここにあるデフォルトファイルを変更するだけです。

%APPDATA%\Roaming\NuGet\NuGet.Config

これが私のファイルの内容です:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <add key="repositoryPath" value="C:\Projects\nugetpackages" />
  </config>
  <activePackageSource>
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
  </activePackageSource>
</configuration>

したがって、ソリューションがどこにあっても、すべてのパッケージは「C:\ Projects \ nugetpackages」フォルダーに移動します。

すべてのソリューションで、既存の「パッケージ」フォルダーを削除するだけです。次に、ソリューションをビルドすると、指定した新しい一元化されたディレクトリに、不足しているパッケージがNuGetによって自動的に復元されます。


これは最も簡単なソリューションであり、より多くの愛に値するものです。
Korayem

2
これが今日最も簡単な解決策ですが、答えの1つが欠けています。それでも、各プロジェクトのcsprojファイルでHintPathを処理する必要があります。それらは自動的に新しいパスをターゲットにしません。私は正しいですか?
batmaci

確かに、私の古いプロジェクトのいくつかでは、「古い」パッケージフォルダへの参照がときどきあります。しかし、私にとってはすべてが正しく機能しているため、グローバル設定が優先されると思います。
Matthieu 2017年

OSXについては、docs.microsoft.com/en-us/nuget/consume-packages/…を参照してください。以下のmklinkのアイデアも気に入っています。
sgtz


3

Visual Studio 2013 Update 4およびNugget Package Managerバージョン> 2.8.5から...

リポジトリのルートにnuget.configファイルを作成します。

ファイルの内容:

<configuration>
  <config>
    <add key="repositoryPath" value="packages" />
  </config>
  <packageSources>
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
  </packageSources>
</configuration>

これにより、すべてのパッケージがnuget.configファイルのレベルのパッケージフォルダーに移動します。

これで、コマンド 'update-package -reinstall'で各.sln nugetコンソールにアクセスできます

同じレベルに複数のリポジトリがあり、それらの間で同じパッケージフォルダを共有する場合は、1つのフォルダを上に移動する方法を試してください。

 <add key="repositoryPath" value="..\packages" />

しかし、この方法で、nugetパッケージがcsprojを参照するようにすると、リポジトリパスの外にある1つのフォルダーを指します。


3

プロジェクト内のすべてのNuGet参照を$(SolutionDir)相対形式に透過的に変換するNuGetパッケージを作成しました。ビルド時のXSLT変換を使用するため、手動でプロジェクトファイルをハッキングする必要はありません。パッケージは自由に更新でき、何も壊れません。

https://www.nuget.org/packages/NugetRelativeRefs

または、Visual Studio 2015 Update 3を使用している場合は、httpsproject.json//oren.codes/2016/02/08/project-json-all-the-thingsの説明に従って、パッケージ参照をフォームに移行するだけです


残念ながら、Microsoftはproject.jsonから移行しているようです。また、私はあなたのnugetパッケージが好きです。少し前、NuGetReferenceHintPathRewriteを使用しましたが、これはほとんど同じことを行いますが、方法が異なります
Andrey Borisko

2

nuget 2.8.3での私の経験の更新。比較的簡単でした。右クリックのソリューションからパッケージの復元有効にするだけでした。NuGet.Config編集し、次の行を追加しました:

  <config>
    <add key="repositorypath" value="..\Core\Packages" />
  </config>

次に、ソリューションを再構築し、すべてのパッケージを目的のフォルダーにダウンロードし、参照を自動的に更新しました。増分パッケージのみがダウンロードされ、既存のパッケージが参照される他のすべてのプロジェクトについても同じことを行いました。したがって、すべてのプロジェクトに共通のパッケージリポジトリが設定されています。

パッケージの復元を有効にするためのステップバイステップの手順は次のとおりです。

http://blogs.4ward.it/enable-nuget-package-restore-in-visual-studio-and-tfs-2012-rc-to-building-windows-8-metro-apps/


2

/ packagesを目的の共有場所にハードリンクするだけです。そうすれば、特別なパッケージの場所を持たない他のユーザーがプロジェクトを壊すことはありません。

管理者としてコマンドプロンプトを開き、使用します

mklink /prefix link_path Target_file/folder_path

2

重要な解決策については、上記の答えは不十分です。簡単に言えば、異なる相対パス、分岐、共有プロジェクトなどを持つ複雑なTFSワークスペース構造は、単一の中央リポジトリを不可能にします。

($ SolutionDir)の使用は正しい方向へのステップですが、($ SolutionDir)を使用してcsprojファイルを手動でコーディングすることは、定期的に更新される数百のパッケージが含まれるコードベースではかなり退屈になります(更新が発生するたびに、HintPathは次のように上書きされます)新しい相対パス)。Update-Package -Reinstallを実行する必要がある場合はどうなりますか。

NugetReferenceHintPathRewriteと呼ばれる優れたソリューションがあります。ビルドの直前に(実際にはcsprojファイルを変更せずに)HintPathsへの($ SolutionDir)の注入を自動化します。自動ビルドシステムに簡単に組み込むことができると思います


1

上のそれらのための短い要約プロVS 2013NuGetバージョン:2.8.60318.667

これは、パッケージを.nugetフォルダーからの相対パスに送る方法です。

<configuration>
  <config>
    <add key="repositoryPath" value="../Dependencies" />
  </config>
</configuration>

たとえば、ソリューション(.slnファイル)がC:\ Projects \ MySolutionにある場合、NuGetパッケージの復元を有効にすると、.nugetフォルダーが次のように作成されます:C:\ Projects \ MySolution.nugetとパッケージがダウンロードされます次のようなディレクトリに:C:\ Projects \ MySolution \ Dependencies

注:いくつかの(不明な)理由により、「repositoryPath」を更新するたびに、変更を有効にするためにソリューションを閉じてから再度開く必要があります


構成タグの終了にスラッシュがないことに注意してください。
Moo


0

パッケージマネージャーとしてpaketを使用している場合は、依存関係ファイルに自動シンボリックリンクオプションがあります。

storage: symlink

ところで:パケットはnugetを活用します

参照:https : //fsprojects.github.io/Paket/dependencies-file.html

変更をできるだけ少なくしたい場合は、スクリプトを使用して定期的にサブディレクトリをクリーンアップできます。すなわち。Nugetのデフォルトの動作では、ファイルをグローバルな場所からローカルのパッケージフォルダーにコピーするため、後でこれらのファイルを削除します。


0

NTFSジャンクションを使用して、すべてのパッケージフォルダーをリポジトリルートの上の1つのフォルダーに直接移動します。よく働く。複数のソリューションにわたるパッケージの並列復元で問題はありません。これの利点の1つは、.csprojファイル内の何百もの相対ヒントパスなど、ソースコードで何も再構成する必要がないことです。これは、ファイルシステムに単一のパッケージフォルダーのリダイレクトとシミュレーションを処理させることで、「機能する」だけです。

「git」の問題に注意してください。コマンドラインを介した「git status」にはステージングされていない変更は表示されませんが、GitKrakenが「package」ジャンクションをステージングされていないファイルとして認識していることに気付きました。クリックすると、「ファイルはディレクトリです」などのエラーも表示されます。GitKrakenは、リベースし、ジャンクションを破棄し、元のファイルパスを持つテキストを含む実際のファイルとして復元した場合にも、この「ファイル」を隠そうとします。非常に奇妙な行動。パッケージファイルが.gitignoreに追加されていることを確認することで、問題を回避できる可能性があります。


-1

NuGet 2.1以降の手順は次のとおりです。 http //docs.nuget.org/docs/release-notes/nuget-2.1

ソリューションレベルのファイルを編集する必要はありません。

Visual Studio 2013および3つのソリューション共有プロジェクトと連携します。

ソリューションレベルのNuGet(.nugetフォルダー内の各nuget.exe)を更新することを忘れないでください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.