【问题标题】:Nuget Pack - cant find package that was just installedNuget Pack - 找不到刚刚安装的包
【发布时间】:2017-04-04 23:16:32
【问题描述】:

VS 2015 中的场景。Nuget 3.5

两个项目。甲和乙 A 创建 Nuget 包 A。(依赖于其他 nuget 源) B 安装 Nuget 包 A。 B 创建 Nuget 包 B。

所有包都打包并复制到一个驱动器号。 Visual Studio 有源码。

将 Nuget 包 A 安装到 B 中效果很好。

但是在创建包B时

找不到“packageA.nupkg”。确保项目已构建。

我的配置有源代码,这就是它首先安装的原因。

我刚刚安装了这个包,它在包文件夹中,它在packages.config中列出。

有什么想法吗?

<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
     <PropertyGroup>
       <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
       <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
       <ProjectGuid>{2E3C3C47-80B4-4B51-9039-438380C9A926}</ProjectGuid>
       <OutputType>Library</OutputType>
       <AppDesignerFolder>Properties</AppDesignerFolder>
       <RootNamespace>LucidOcean.Atlantis.Core</RootNamespace>
       <AssemblyName>LucidOcean.Atlantis.Core</AssemblyName>
   <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
   <FileAlignment>512</FileAlignment>
   <RestorePackages>false</RestorePackages>
   <TargetFrameworkProfile />
 </PropertyGroup>
 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
   <DebugSymbols>true</DebugSymbols>
   <DebugType>full</DebugType>
   <Optimize>false</Optimize>
   <OutputPath>bin\Debug\</OutputPath>
   <DefineConstants>DEBUG;TRACE</DefineConstants>
   <ErrorReport>prompt</ErrorReport>
   <WarningLevel>4</WarningLevel>
 </PropertyGroup>
 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
   <DebugType>full</DebugType>
   <Optimize>false</Optimize>
   <OutputPath>bin\Release\</OutputPath>
   <DefineConstants>TRACE</DefineConstants>
   <ErrorReport>prompt</ErrorReport>
   <WarningLevel>4</WarningLevel>
   <DebugSymbols>true</DebugSymbols>
 </PropertyGroup>
 <PropertyGroup>
   <SignAssembly>true</SignAssembly>
 </PropertyGroup>
 <PropertyGroup>
   <AssemblyOriginatorKeyFile>lucidocean.snk</AssemblyOriginatorKeyFile>
 </PropertyGroup>
 <ItemGroup>
   <Reference Include="Atlantis.Extensibility, Version=2017.0.0.9, Culture=neutral, PublicKeyToken=ff48a18f294fb322, processorArchitecture=MSIL">
     <HintPath>$(SolutionDir)packages\Atlantis.Extensibility.2017.0.0.9\lib\net461\Atlantis.Extensibility.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="AWSSDK, Version=2.3.55.2, Culture=neutral, PublicKeyToken=9f476d3089b52be3">
     <HintPath>g:\LucidOceanNugetServer\AWSSDK.2.3.55.2\lib\net45\AWSSDK.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
     <HintPath>g:\LucidOceanNugetServer\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="LucidOcean.Atlantis.Core, Version=2017.0.0.3, Culture=neutral, PublicKeyToken=ff48a18f294fb322, processorArchitecture=MSIL">
     <HintPath>$(SolutionDir)packages\LucidOcean.Atlantis.Core.2017.0.0.3\lib\net461\LucidOcean.Atlantis.Core.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="LucidOcean.Business, Version=2017.0.0.9, Culture=neutral, PublicKeyToken=ff48a18f294fb322, processorArchitecture=MSIL">
     <HintPath>$(SolutionDir)packages\LucidOcean.Business.2017.0.0.9\lib\net461\LucidOcean.Business.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="LucidOcean.Data, Version=2017.0.0.9, Culture=neutral, PublicKeyToken=ff48a18f294fb322, processorArchitecture=MSIL">
     <HintPath>$(SolutionDir)packages\LucidOcean.Data.2017.0.0.9\lib\net461\LucidOcean.Data.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="LucidOcean.Data.Utility, Version=2017.0.0.9, Culture=neutral, PublicKeyToken=ff48a18f294fb322, processorArchitecture=MSIL">
     <HintPath>$(SolutionDir)packages\LucidOcean.Data.Utility.2017.0.0.9\lib\net461\LucidOcean.Data.Utility.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="LucidOcean.Web.Caching, Version=2017.0.0.3, Culture=neutral, PublicKeyToken=ff48a18f294fb322, processorArchitecture=MSIL">
     <HintPath>$(SolutionDir)packages\LucidOcean.Web.Caching.2017.0.0.3\lib\net461\LucidOcean.Web.Caching.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="LucidOcean.Web.Communication, Version=2017.0.0.1, Culture=neutral, PublicKeyToken=ff48a18f294fb322, processorArchitecture=MSIL">
     <HintPath>$(SolutionDir)packages\LucidOcean.Web.Communication.2017.0.0.1\lib\net461\LucidOcean.Web.Communication.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="LucidOcean.Web.Layouts, Version=2017.0.0.4, Culture=neutral, PublicKeyToken=ff48a18f294fb322, processorArchitecture=MSIL">
     <HintPath>$(SolutionDir)packages\LucidOcean.Web.Layouts.2017.0.0.4\lib\net461\LucidOcean.Web.Layouts.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="LucidOcean.Web.Security, Version=2017.0.0.9, Culture=neutral, PublicKeyToken=ff48a18f294fb322, processorArchitecture=MSIL">
     <HintPath>$(SolutionDir)packages\LucidOcean.Web.Security.2017.0.0.9\lib\net461\LucidOcean.Web.Security.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="LucidOcean.Web.Utility, Version=2017.0.0.8, Culture=neutral, PublicKeyToken=ff48a18f294fb322, processorArchitecture=MSIL">
     <HintPath>$(SolutionDir)packages\LucidOcean.Web.Utility.2017.0.0.8\lib\net461\LucidOcean.Web.Utility.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="Microsoft.ReportViewer.Common, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
     <HintPath>g:\LucidOceanNugetServer\Microsoft.Report.Viewer.11.0.0.0\lib\net\Microsoft.ReportViewer.Common.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="Microsoft.ReportViewer.ProcessingObjectModel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
     <HintPath>g:\LucidOceanNugetServer\Microsoft.Report.Viewer.11.0.0.0\lib\net\Microsoft.ReportViewer.ProcessingObjectModel.DLL</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
     <HintPath>g:\LucidOceanNugetServer\Microsoft.Report.Viewer.11.0.0.0\lib\net\Microsoft.ReportViewer.WebForms.DLL</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="Microsoft.SqlServer.Types, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
     <Private>True</Private>
   </Reference>
   <Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
     <HintPath>$(SolutionDir)packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
     <HintPath>$(SolutionDir)packages\Newtonsoft.Json.10.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="nunit.framework, Version=3.6.1.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
     <HintPath>g:\LucidOceanNugetServer\NUnit.3.6.1\lib\net45\nunit.framework.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="SimpleImpersonation, Version=2.0.1.27158, Culture=neutral, processorArchitecture=MSIL">
     <HintPath>g:\LucidOceanNugetServer\SimpleImpersonation.2.0.1\lib\net40-Client\SimpleImpersonation.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="System" />
   <Reference Include="System.ComponentModel.DataAnnotations" />
   <Reference Include="System.Configuration" />
   <Reference Include="System.Core" />
   <Reference Include="System.Drawing" />
   <Reference Include="System.Messaging" />
   <Reference Include="System.Net.Http" />
   <Reference Include="System.Net.Http.Formatting, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
     <HintPath>g:\LucidOceanNugetServer\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="System.Net.Http.WebRequest" />
   <Reference Include="System.Runtime.Serialization" />
   <Reference Include="System.Security" />
   <Reference Include="System.ServiceModel" />
   <Reference Include="System.Web" />
   <Reference Include="System.Web.Extensions" />
   <Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
     <HintPath>$(SolutionDir)packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.Helpers.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
     <HintPath>g:\LucidOceanNugetServer\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="System.Web.Http.WebHost, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
     <HintPath>g:\LucidOceanNugetServer\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
     <HintPath>$(SolutionDir)packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
     <HintPath>$(SolutionDir)packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
     <HintPath>$(SolutionDir)packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="System.Web.WebPages.Deployment, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
     <HintPath>$(SolutionDir)packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Deployment.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
     <HintPath>$(SolutionDir)packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
     <Private>True</Private>
   </Reference>
   <Reference Include="System.Xml.Linq" />
   <Reference Include="System.Data.DataSetExtensions" />
   <Reference Include="Microsoft.CSharp" />
   <Reference Include="System.Data" />
   <Reference Include="System.Xml" />
 </ItemGroup>

【问题讨论】:

  • csproj 文件中有内容或缺少内容。如果我创建一个新项目,包括所有相同的代码文件、引用和包,然后它会创建包 B - 没有问题。但是我有超过 22 个项目,其中有大量的复杂性,我不想重新创建......
  • 我可以确认所有包都位于包文件夹中。 nupkg 包含正确的 461 程序集。 msbuild is running tooling 14 无论是在解决方案 VS.NET 2015 中还是从命令行运行包,都存在相同的错误

标签: visual-studio nuget


【解决方案1】:

我使用这篇帖子How can .csproj know about its solution? 输出了 $(SolutionDir) 并发现了一个差异。

csproj 位于带有 .sln 的文件夹的下一级,在调用 nuget pack b.csproj 时给了我一个不正确的 $(SolutionDir) A.package 比 B.package 高一级,B 下降一级,没有找到 packages 文件夹。

文件夹\解决方案\包 文件夹\解决方案\ProjectA 文件夹\ProjectB

msbuild 和 Visual Studio 2015 有同样的问题。

由于我通过命令行使用 msbuild 和 nuget,并且错误“找不到包”不包含它正在寻找的文件夹,所以它变成了一个糟糕的问题。

Nuget 确实应该在 pack 命令上输出更多内容,而不仅仅是找不到包名。完整的文件夹位置会很有帮助。

我将项目移动到相同的文件夹深度,它找到了包。 奇怪的是,csproj 导入/依赖项只有 ..\ 提示,这不足以找到包。我认为 VS.NET 2015 更新提示位置可能存在问题。

【讨论】:

  • 更烦人的是,csproj 中的 Tooling 设置为 4.0 而不是 14,这让我走上了花园小路。当您从较旧的 vs.net 升级项目时,我希望与目标平台一起更新工具。
【解决方案2】:

找不到“packageB.nupkg”。确保项目已经构建。

这个错误应该是找不到“packageA.nupkg”而不是“packageB.nupkg”。我说的对吗?

如果是,那是因为packages 文件夹不在预期位置

您可以检查 PackageA.nupkg 是否存在于您的解决方案文件夹下的 packages 文件夹中。当 nuget pack 包依赖于 packagedirectory 时,应该有一个选项可以通过 cmd 行覆盖该配置,但是 -PackageDirectory 选项 not 已添加到 nuget打包命令。它打算在版本 3.61 中添加。更多信息可以参考Issue 3378

要解决此问题,您可以将包文件夹设置在预期位置或使用 .nuspec 文件而不是 .xxproj。

希望对你有帮助。

【讨论】:

  • 这个错误应该是找不到“packageA.nupkg”而不是“packageB.nupkg”。我对吗? - 是的 - 编辑了问题。包确实存在于包文件夹中,并且 csproj 文件指向正确的位置。我还添加了 csproj 部分
  • @Jonathan Crossland,根据你的csproj文件,包“System.Web.Http”和“System.Web.Http.WebHost”不在预期的位置,所以当你打包的时候项目,nuget 找不到那些包。这是 nuget 的一个已知问题,您需要更新 HintPath 并将这些包设置到包中。
猜你喜欢
  • 1970-01-01
  • 2011-09-20
  • 1970-01-01
  • 2018-11-29
  • 2016-04-22
  • 2012-10-04
  • 2021-04-28
  • 2012-10-17
  • 2020-12-04
相关资源
最近更新 更多