我正在开发一个使用nuget但不使用包恢复的项目.(顺便说一句,这是我无法控制的决定,所以任何涉及启用包恢复的答案都不是我能够使用的.)
解决方案中的一些项目(总共34个中的4个; WinJS应用程序商店项目,两个普通的.NET类库,以及我的一个Azure云项目)正在报告这个臭名昭着的警告:
...packages\Microsoft.Bcl.Build.1.0.13\tools\Microsoft.Bcl.Build.targets(225,5): warning : All projects referencing Valhalla.Consumer.Core.csproj must install nuget package Microsoft.Bcl.Build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317569.
该链接假定我要打开包恢复.那么到目前为止我在这个问题上找到的其他一些建议也是如此.
顺便提一下,我尝试在选项 - >包管理器 - >常规设置中禁用包恢复.这没有用(即使它确实如此,这也是不可取的 - 我在我工作的其他一切中使用包恢复).
我真的不明白为什么我在一个不使用包恢复的解决方案中得到它.据我了解,它所要求的包的重点是支持包恢复.因此,在未使用包恢复的解决方案中,此包存在似乎很奇怪.
但是,似乎某些其他nuget包会导致您依赖于此.我有一个Windows运行时组件项目,它使用Microsoft.Bcl一个nuget包,由于某种原因,它依赖于Microsoft.Bcl.Build.(Microsoft.Bcl当我创建项目时,Visual Studio似乎为我添加了包.大概是必要的.)其他项目似乎Microsoft.Bcl.Build通过HTTP客户端库获得依赖.
显然,某些常见的nuget包似乎会强制依赖于Microsoft.Bcl.Build您是否正在使用包恢复.
如果您可以通过将相关包添加到收到此警告的所有项目中来消除警告,那就没问题了.但令人烦恼的是,即使我将Microsoft.Bcl.Build包添加到消费组件(例如,我的WinJS Window Store应用程序),我仍然会收到此警告!(所以它继续抱怨我需要安装nuget包,即使我已经安装了它.)
在这种情况下有谁知道如何消除这种警告?做它让我做的事似乎不够.少了什么东西?
我有一个混合的环境,一些开发人员正在开发Visual Studio 2013,其他人正在研究2015年.在我们从Visual Studio 2015更新引用的NuGet包之前,一切正常.
现在,当尝试从Visual Studio 2013恢复NuGet包时,我看到以下错误:
项目Foo的NuGet包恢复失败:'System.Linq 4.0.0'包需要NuGet客户端版本'3.0'或更高版本,但当前的NuGet版本是'2.8.60723.765'..
显然,Visual Studio 2013没有NuGet版本3.x.
是否有继续使用Visual Studio 2013和2015的解决方案?
nuget visual-studio-2013 nuget-package-restore visual-studio-2015
我有一台机器,其C:\驱动器的空间有限,但我有一个大的D:\驱动器,有足够的空间可以更改nuget包缓存的位置(我使用的是nuget 3.x)?
我们正在Visual Studio 2015中开发多个解决方案.这些解决方案共享一些需要nuget包的核心项目.当从一个解决方案添加nuget包并稍后由另一个解决方案打开时,无法解析nuget引用.
文件夹结构如下:
当我打开nuget包SharedProject1时SolutionA,dll参考显示了路径packages folder A.当SolutionB在另一台计算机被打开,SharedProject1具有基准误差,因为packages folder A不存在.
我已阅读此解决方案:当一些项目被列入多种解决方案设置为所有解决方案的常见的NuGet包文件夹,但是这个因为没有解决问题repositoryPath的关键.nuget /不与应用NuGet.config文件Visual Studio 2015和Nuget 3.4.3
我们在构建环境中遇到了一个问题,我们希望我们的持续集成构建能够通过适当地附加版本号来下载标记为预发布的"最新且最好的"NuGet包-dev.
每当我们运行该命令时nuget restore,它都无法获取任何预发布版本.我查看了NuGet版本控制页面上的文档,但是它不方便地省略了有关如何将预发布范围添加到它应该在packages.config文件中下载的允许版本的详细信息.
目前,packages.config文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Foo" version="1.0.0" targetFramework="net35" />
</packages>
Run Code Online (Sandbox Code Playgroud)
我们希望NuGet能够至少能够看到然后从以下列表中选择最新版本:
遗憾的是,没有看到预发布版本,并且恢复过程仅使用"已发布"的软件包.尝试下载仅预发布包时的典型错误消息是:
Unable to find version '1.0.0' of package 'Foo'.
Run Code Online (Sandbox Code Playgroud)
有没有什么方法可以在packages.config文件中指定包含预发布包的一系列版本?甚至是从.nuspec文件本身?
提前谢谢了.
我正在创建一个Visual Studio项目模板并将其捆绑在VS扩展中.我需要从模板创建的项目来引用~20个NuGet包.
是否有可能从nuget.org解析引用而不必包含VSIX中的所有引用?
Visual Studio模板上的NuGet文档提供了有关如何在VSIX中添加软件包的说明,但它要求将文件本地存储在磁盘上,并且.nupkg是vsix中的软件包:
将您的nupkg文件作为自定义扩展内容添加到source.extension.vsixmanifest文件中.如果您使用的是2.0架构,它应如下所示:
Run Code Online (Sandbox Code Playgroud)<Asset Type="Moq.4.0.10827.nupkg" d:Source="File" Path="Packages\Moq.4.0.10827.nupkg" d:VsixSubPath="Packages" />
问题已经问过
我知道有一个类似的问题(创建一个已经包含Nuget Package Reference的Visual Studio项目模板?)并回答(不可能),但是2011年就提出了这个问题.
5年后,还不可能吗?
c# visual-studio nuget visual-studio-extensions nuget-package-restore
我使用Nuget Installer创建了一个TeamCity构建步骤,但是当我运行这些步骤时,我得到了错误:
Updating sources: server side checkout
[15:35:44][Updating sources] Repository sources transferred: 112.73 KB total
[15:35:44][Updating sources] Removing C:\TeamCity\buildAgent\work\12dee9c66185ea67
[15:35:44][Updating sources] Updating C:\TeamCity\buildAgent\work\12dee9c66185ea67
[15:35:44]Parameter **"teamcity.tool.NuGet.CommandLine.DEFAULT=%teamcity.tool.NuGet.CommandLine.3.4.3%" is not fully resolved, using as is.**
Step 1/3: Nuget (NuGet Installer)
[15:25:34][Step 1/3] scan: Searching for nuget.config files
[15:25:34][scan] Found packages folder: C:\TeamCity\buildAgent\work\12dee9c66185ea67\packages
[15:25:34][scan] Failed to find repositories.config at C:\TeamCity\buildAgent\work\12dee9c66185ea67\packages\repositories.config
[15:25:34][scan] Scanning projects in solution file: C:\TeamCity\buildAgent\work\12dee9c66185ea67\Specflow.sln
[15:25:34][scan] Found project C:\TeamCity\buildAgent\work\12dee9c66185ea67\Specflow\Specflow.csproj
**[15:25:34][Step 1/3] Failed to find NuGet executable at: C:\TeamCity\buildAgent\work\12dee9c66185ea67\%teamcity.tool.NuGet.CommandLine.DEFAULT%
[15:25:34][Step 1/3] Step Nuget …Run Code Online (Sandbox Code Playgroud) 我使用Visual Studio 2015的GitHub扩展将我的项目克隆到新计算机上.我尝试恢复包,我收到一个错误,说:
NuGet Package restore failed for project PROJECT: Unable to find version 2.0.0 of package 'Microsoft.Net.Compilers'
Run Code Online (Sandbox Code Playgroud)
我已经研究了其他一些类似问题的问题,但这些解决方案都没有对我有用.
我尝试删除packages文件夹,再次打开Visual Studios,然后重建.那并没有解决它.
我尝试在Package Manager Console中手动安装Microsoft.Net.Compilers.
PM> Install-Package Microsoft.Net.Compilers
Run Code Online (Sandbox Code Playgroud)
我尝试从csproj文件中删除这段代码(这似乎适用于某些人):
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>
Run Code Online (Sandbox Code Playgroud)
我尝试重新安装所有包
Update-Package –reinstall
Run Code Online (Sandbox Code Playgroud)
到目前为止,我没有运气解决问题.任何帮助表示赞赏.
编辑:
I tried the response below and received this …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Windows Server 2012R2上的TeamCity为.NET Framework 4.6.2(而不是.NET Core)构建ASP.NET Core 2.0应用程序.
服务器中安装了以下组件:
TeamCity使用nuget版本4.1和解决方案文件来恢复依赖包(有关详细信息,请参阅下面的完整日志).
错误:
[22:57:51]
[22:57:51]Errors in C:\path\to\project\Server\Server.csproj
[22:57:51] Package Microsoft.AspNetCore 2.0.0 is not compatible with net462 (.NETFramework,Version=v4.6.2). Package Microsoft.AspNetCore 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51] Package Microsoft.AspNetCore.Mvc 2.0.0 is not compatible with net462 (.NETFramework,Version=v4.6.2). Package Microsoft.AspNetCore.Mvc 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51] One or more packages are incompatible with .NETFramework,Version=v4.6.2.
[22:57:51] Package Microsoft.AspNetCore 2.0.0 is not compatible with …Run Code Online (Sandbox Code Playgroud) teamcity nuget-package-restore windows-server-2012-r2 .net-4.6.2 asp.net-core-2.0
我们使用 Wixtoolset V3.9 来构建我们的设置。我们使用以下命令来开始构建:
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\msbuild.exe" /restore /t:Rebuild /p:Configuration=Release /p:Platform=x64 MySolution.sln /p:BabelEnabled=true
Run Code Online (Sandbox Code Playgroud)
我们需要该参数/restore来恢复构建服务器上的 nuget-packages。由于我们通过 MSBUILD 16 构建 Wix-Setup,我们收到以下警告:
Skipping restore for project 'SetupWix.wixproj'. The project file may be invalid or missing targets required for restore.
Run Code Online (Sandbox Code Playgroud)
该警告属于类别NU1503(无论这意味着什么)。我们找不到解决甚至抑制这个警告的方法。我们尝试通过将代码 NU1503 添加到项目属性来抑制它:
无论什么原因,警告仍然出现。
问题:我们如何解决或抑制这个警告?