Nuget 什么';这是当前的impl。在csproj里有多少人?
我有一些始于VS2008或VS2010之类的解决方案。它们包含一些我认为与NuGet包还原相关的内容,并在构建过程中包含某些MS NuGet包 但这在不同的项目中看起来有所不同,而我看不出有任何差异的原因,一个新的VS2017项目包含另一个不同的版本 那么,在这方面,我可以安全地做些什么来更新我的旧项目——在VS2017中,它现在应该是什么样子 两个旧解决方案都包含一个解决方案级子文件夹“.nuget”,其中包含三个文件:Nuget 什么';这是当前的impl。在csproj里有多少人?,nuget,visual-studio-2017,csproj,nuget-package-restore,Nuget,Visual Studio 2017,Csproj,Nuget Package Restore,我有一些始于VS2008或VS2010之类的解决方案。它们包含一些我认为与NuGet包还原相关的内容,并在构建过程中包含某些MS NuGet包 但这在不同的项目中看起来有所不同,而我看不出有任何差异的原因,一个新的VS2017项目包含另一个不同的版本 那么,在这方面,我可以安全地做些什么来更新我的旧项目——在VS2017中,它现在应该是什么样子 两个旧解决方案都包含一个解决方案级子文件夹“.nuget”,其中包含三个文件:nuget.Config、nuget.exe和nuget.targets
nuget.Config
、nuget.exe
和nuget.targets
旧的.csproj
文件包含以下NuGet stuff的“版本”:
Proj1:
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
<Import Project="..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use 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('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
</Target>
此项目引用此计算机上缺少的NuGet包。使用NuGet Package Restore下载它们。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=322105. 缺少的文件是{0}。
项目J2(附加条件):
此项目引用此计算机上缺少的NuGet包。启用NuGet软件包还原以下载它们。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=322105. 缺少的文件是{0}。
Proj3(不导入nuget.targets):
此项目引用此计算机上缺少的NuGet包。使用NuGet Package Restore下载它们。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=322105. 缺少的文件是{0}。
新的VS2017 web应用程序项目(不导入nuget.targets或Microsoft.Bcl.Build.1.0.21,不同的
标记):
此项目引用此计算机上缺少的NuGet包。使用NuGet Package Restore下载它们。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=322105. 缺少的文件是{0}。
我希望所有这些旧项目都有相同的设置(除非有特殊原因需要不同),并且我希望设置与VS2017中的工具和环境保持一致
我已经启用了自动包还原,并希望保持这种状态
注意:所有四个项目似乎都成功构建和运行。Proj2和Proj3是单元测试项目。Proj1实际上是两个在这方面完全相同的项目
当前的impl是什么。在csproj里有多少人
要解决此问题,您可以执行以下步骤:
.nuget
文件夹中删除nuget.exe
和nuget.targets
,并从解决方案工作区中删除这些文件。使用disableSourceControlIntegration设置保留nuget.config
,如中所述.nuget
文件夹
元素,并删除对nuget.targets文件的任何引用
<RestorePackages>true</RestorePackages>
true
和
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<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>
此项目引用此计算机上缺少的NuGet包。启用NuGet软件包还原以下载它们。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=322105. 缺少的文件是{0}。
注意:保留
谢谢!将阅读我在下面部分找到的.lsn文件中的参考。我应该移除它吗<代码>项目(“{2150E333-8FDC-42A3-9474-1A3956D46DE8}”)=“.nuget”、“.nuget”、“{9CD7B238-A979-4D2C-9E09-586BBF9C4162}”项目部分(解决方案项)=preProject.nuget\nuget.Config=.nuget\nuget.Config.nuget\nuget.exe=.nuget\nuget.exe.nuget\nuget.targets=.nuget\nuget.targets EndProjectSection EndProject
我删除了它(上面的部分,来自.sln文件)。似乎有效。我发现有一种新的.csproj格式,带有标记PackageReference
,但它似乎不支持遗留的.Net Framework项目。这仍然是正确的还是已修复?我该如何进行转换?另外,它是否有助于升级到目标.Net Framework 4.7.1(现在显然包括完整的.Net标准2.0)?新的.csproj格式仍然支持旧的.Net Framework项目,您可以将其转换为新的.csproj:,如果您有任何具有目标Framework.Net标准2.0的项目,您可以升级到目标Framework 4.7.1。对不起,我不太明白你的评论。我已经读了你链接的文章,它似乎说它不适用于非核心ASP.NET应用程序(如我的)。但是这篇文章已经有将近一年的历史了,所以我想也许情况已经改变了?
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use 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('..\packages\Microsoft.Net.Compilers.2.1.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.2.1.0\build\Microsoft.Net.Compilers.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
</Target>
<RestorePackages>true</RestorePackages>
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<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>