nvi*_*vi9 13 .net csproj visual-studio visual-studio-2013 windows-10
我有一个Visual Studio(Community 2013)解决方案,我的电脑上有许多c#项目,我刚刚从7升级到Windows 10.该项目使用.Net Framework 4.0 Client Profile.在win7上一切正常,但现在其中一个项目似乎没有加载引用.引用项目附近有黄色三角形,不是同一解决方案引用的项目(因此NuGet下载的系统和引用未加载).
该资源是在解决方案的另一个项目,别人不行.当我打开系统引用的属性选项卡时,该Path字段为空,因此该Resolved字段为False...
此外,在.csproj文件中,一切似乎都没问题,有需要的<HintPath>节点,相对(或绝对,如果引用在另一个驱动器上),以及正确的现有路径.
另一个奇怪的事情是:在对象浏览器中,所有引用都是(看似)加载的:
所以我该怎么做:
小智 13
我也遇到了这个问题,花了一些时间才弄明白.问题是NuGet改变了包的恢复方式."旧方式"需要带有3个文件(nuget.config,nuget.exe,nuget.targets)的".nuget"文件夹以及项目文件中的一些设置,如:
<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)
这导致项目被打破.
要解决此问题,请将缺少的目录复制到项目中(使用较旧版本的Visual Studio/NuGet或从拥有它的同事那里获取)或者只是从项目文件中删除上述部分.
为获得最佳效果,请删除:
<RestorePackages>true</RestorePackages>
Run Code Online (Sandbox Code Playgroud)
和
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
Run Code Online (Sandbox Code Playgroud)
来自项目文件!
有关此主题的更多信息,请访
http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html
http://docs.nuget.org/consume/package-restore/migrating-to-automatic-package-restore
https://docs.microsoft.com/en-us/visualstudio/ide/troubleshooting-broken-references
| 归档时间: |
|
| 查看次数: |
10871 次 |
| 最近记录: |