0

解決策Aには.NET Core 1.1クラスライブラリプロジェクトがあります。パッケージのプロパティでは、すべてのNuGetフィールドを埋めて、正常にビルドされたらNuGetを作成するように選択しました。このプロジェクトはうまく構築され、NUPKGが作成されます。 BTW生成されたNUPKGをローカルディレクトリ(自分のリポジトリ)に自動的にコピーする方法はありますか?VIsual Studio 2017 NuGetパッケージは正常にインストールされますが、認識されません

次に、私はASP.NET Core 1.1 WebアプリケーションであるソリューションBを持っています。その中で私は自分のローカルリポジトリ(私は手動でソリューションAで構築されたNUPKGをコピーしたもの)をブラウズし、Webアプリケーションに自分のSolutionA.MyPackageをインストールします。 VS.2017は、インストールに成功したと言います。プロジェクトのNuGet依存関係にリストされているのがわかります。

しかし、そのNuGetパッケージで定義されているオブジェクトのANYを使用しようとすると、NuGetまたはそのDLLへのアセンブリ参照が存在しないように見えるという赤い強調表示が表示されますが、

このVisual Studioで生成されたNugetパッケージは、インストールされていてもまだ参照されていないかのように動作しています。

UPDATE - 私のローカルリポジトリにコピーするようCSPROJ TARGET 、(私はそれを置くとして、誰かがそれを示唆していた)私はCSPROJにこれを追加、それは働いていませんでした。私は最終的にそれが動作しなかった理由を理解した、ItemGroupはの仕事の中になければなりません。

<Target Name="CopyPackage" AfterTargets="GenerateNuspec"> 
    <ItemGroup> 
     <MyPackageFiles Include="bin\Release\PackageId.*.nupkg" /> 
    </ItemGroup> 
    <Copy SourceFiles="@(MyPackageFiles)" DestinationFolder="D:\My Repository\MyNugget\Publish" /> 
    </Target> 

UPDATE NuGet検査 私はNuGetパッケージエクスプローラでNUPKGを開いて、それがこの多かれ少なかれを示しています

content\ 
     Properties\ 
      launchSettings.json 
     Views\ 
      Shared\ 
       rest of my stuff here 
contentFiles\ 
    any\ 
    netcoreapp1.1\ 
     Properties\ 
      launchSettings.json 
     Views\ 
      Shared\ 
       rest of my stuff here 
lib\ 
    netcoreapp1.1 (.NEtCoreApp, Version=v1.1) 
     MyPackage.dll 

UPDATE 3 NuGetは(使用動作を停止しているようですので、以前はうまく動作していました)NuGetではなくAssembly Referenceを使用することを選択しました(現在は)。このような状況では、コーディング時に、参照されたアセンブリ(旧NuGet)内のすべてのオブジェクトを参照できるため、メインプロジェクトでコンパイルエラーが発生することはありませんが、Webアプリケーションを実行すると内部エラーが発生します。

FileNotFoundException: Could not load file or assembly 
'MyPackage, Version=0.0.3.0, Culture=neutral, PublicKeyToken=null'. 
The system cannot find the file specified. 

Unknown location 

解決策エクスプローラでアセンブリ参照が表示され、それをクリックすると(メインアプリケーション)、そのアセンブリで定義したすべてのオブジェクトに移動できますが、これは奇妙です。なぜそれはもはやそれを見つけることができないのですか?

+0

適切な "using"ステートメントを指定して、名前空間にアクセスしていますか? –

+0

ところで、ローカルのNugetサーバーを作成するか、共有ファイルの場所を使用して、その場所をNugetソースに追加する必要があります。その後、それをビルドしてフォルダにコピーするだけで、Nugetマネージャの「更新」を使って新しいバージョンを入手することができます。 –

+0

もちろん私はusingステートメントを入れます。たとえそれがインストールされているかのようにNuGetのトップレベルの名前空間を認識することさえできませんでしたが、実際にはまだそれは依存関係としてリストされています。 –

答えて

0

(以前と同じように)もう一度作業しています。今日私は解決策を開くことができましたが、拡張機能(Tools | Extensions)をダウンロードしようとしたときに、アクセス拒否などのエラーメッセージが表示されました。私がVS.2017にインストールして以来、これまでに起こったことです。

私は2002年以来私が使用しているすべてのVisual Studiosの中で、これは最も不安定でした! (そして私は15.2を更新しました)。

このエラーが再び発生したとき、私はそれを取り除く方法を知っていました。「ちょっと、NuGetパッケージをインストールしたままにしておくか、直接アセンブリリファレンスに問題があるのでしょうか?

だから、私はCに行ってきました:\ユーザーは、のAppData \ユーザーを\ \ローカル\マイクロソフト\ VisualStudioを\は15.2 *フォルダとが完全それを削除しました。

その後、私はACCESS DENIEDの問題はすべての拡張機能を再インストールする必要があるという副作用がなくなりました。私は自分自身のNuGetをインストールしようとしましたが、それはうまくいっていて、予想通り(オブジェクトが見つかっていなかった)、オブジェクトが見つかってWebアプリケーションが再び機能しました。

+0

ここであなたのソリューションを共有していただきありがとうございます。回答としてマークすることができますので、同じ問題を抱える他のコミュニティメンバーに役立つ可能性があります。簡単に答えを見つける –

関連する問題