解決策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
解決策エクスプローラでアセンブリ参照が表示され、それをクリックすると(メインアプリケーション)、そのアセンブリで定義したすべてのオブジェクトに移動できますが、これは奇妙です。なぜそれはもはやそれを見つけることができないのですか?
適切な "using"ステートメントを指定して、名前空間にアクセスしていますか? –
ところで、ローカルのNugetサーバーを作成するか、共有ファイルの場所を使用して、その場所をNugetソースに追加する必要があります。その後、それをビルドしてフォルダにコピーするだけで、Nugetマネージャの「更新」を使って新しいバージョンを入手することができます。 –
もちろん私はusingステートメントを入れます。たとえそれがインストールされているかのようにNuGetのトップレベルの名前空間を認識することさえできませんでしたが、実際にはまだそれは依存関係としてリストされています。 –