我有解決方案A,它有一個.NET Core 1.1類庫項目。在Package屬性中,我填充了所有NuGet字段,並選擇在成功構建後創建NuGet。這個項目建立得很好,並且創建了NUPKG。順便說一句如何自動將生成的NUPKG複製到本地目錄(我自己的存儲庫)?VIsual Studio 2017 NuGet包安裝得很好但不被認可
然後我有解決方案B這是一個ASP.NET Core 1.1 Web應用程序。在它中,我瀏覽到我的本地存儲庫(我手動複製了由解決方案A構建的NUPKG),並將我的SolutionA.MyPackage安裝到Web應用程序中。 VS.2017表示它成功安裝它。我看到它列在項目的NuGet依賴項中。但是,當我嘗試使用任何在NuGet包中定義的對象時,我會得到一個紅色突出顯示,它不會被找到,就好像沒有對該DLL的NuGet或程序集引用,但是存在!
是什麼導致這個Visual Studio生成的Nuget包被安裝,但它的行爲好像它還沒有被引用?
更新 - 的csproj TARGET 至於複製到我的本地庫,我說這的csproj,但它不工作(有人曾建議它,因爲我把它)。我終於想通了它爲什麼不起作用,ItemGroup必須在的Task裏面。
<Target Name="CopyPackage" AfterTargets="GenerateNuspec">
<ItemGroup>
<MyPackageFiles Include="bin\Release\PackageId.*.nupkg" />
</ItemGroup>
<Copy SourceFiles="@(MyPackageFiles)" DestinationFolder="D:\My Repository\MyNugget\Publish" />
</Target>
更新的NuGet檢驗 我的NuGet Package Explorer中打開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
更新3 由於的NuGet似乎已經停止工作(使用以前工作得很好)我選擇使用Assembly Reference而不是NuGet(現在)。在這種情況下,奇怪的事情發生了,編碼時我可以引用引用程序集(前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管理器中的「更新」來獲取更新的版本。 –
是的,我當然放了使用聲明。即使嘗試完全限定名稱,但它甚至不承認該NuGet的頂級命名空間,就好像它已經安裝,但不是真的,但它被列爲依賴項。 –