Visual Studio 不加载项目引用
Visual Studio doesn't load project references
我有一个 Visual Studio (Community 2013) 解决方案,我的电脑上有很多 c# 项目,我刚刚从 7 升级到 Windows 10。该项目使用 .Net Framework 4.0 Client Profile .在 win7 上一切正常,但现在其中一个项目似乎没有加载引用。引用项附近有黄色三角形,哪些不是从同一解决方案引用的项(因此未加载 NuGet 下载的系统和引用)。
Resources是解决方案中的另一个项目,其他的不是。当我打开系统引用的属性选项卡时,Path
字段为空,因此 Resolved
字段为 False
...
此外,在 .csproj 文件中一切似乎都正常,在需要的地方有 <HintPath>
个节点,具有相对(或绝对,如果引用在另一个驱动器上)和正确的现有路径。
另一件奇怪的事情:在对象浏览器中,所有的引用(似乎)都被加载了:
那么,我该怎么办:
- 重新创建项目文件(通过创建新项目并再次添加所有文件和引用);
- 更改项目的配置;
- 使用较新版本的 .Net;
- 更改 VS 配置中的一些内容;
- 使用另一个 VS(例如 Community 2015)还是重新安装当前的?
主要问题是 FRAMEWORK 引用。
将项目加载到 VS 中并在项目属性页面(目标框架)中进行更改,升级到 .NET 4.x(不是客户端)或 .NET 4.5
我也遇到了这个问题,我花了一些时间才弄明白。问题是 NuGet 改变了包的恢复方式。 "old way" 需要包含 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>
这导致项目被破坏。
要解决此问题,请将丢失的目录复制到项目中(使用旧版本的 Visual Studio/NuGet 或从拥有它的同事那里获取)或者只是简单地从项目文件中删除上述部分。
为获得最佳效果,请同时删除:
<RestorePackages>true</RestorePackages>
和
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
来自项目文件!
在此处查找有关该主题的更多信息:
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
确保两个项目都针对相同的框架版本。对于 ex:one 与目标框架 .Net Framework 4.5.1 将无法与 4.5
一起使用
如果您正在使用 "TFS",或任何其他版本控制系统,我已经解决了问题:
将解决方案文件与最新的进行比较。我这样做并意识到 visual studio 本身为 x86 添加了很多配置,这导致了问题,即使我尝试使用 x64 构建。签出文件然后撤消更改就成功了。
当我将项目移动到另一个文件夹时,我在 VS-2015 中遇到了这个问题(项目未加载引用)。
而且新文件夹的名字很大,我缩短了名字,重新加载项目然后就开始工作了。
我有一个 Visual Studio (Community 2013) 解决方案,我的电脑上有很多 c# 项目,我刚刚从 7 升级到 Windows 10。该项目使用 .Net Framework 4.0 Client Profile .在 win7 上一切正常,但现在其中一个项目似乎没有加载引用。引用项附近有黄色三角形,哪些不是从同一解决方案引用的项(因此未加载 NuGet 下载的系统和引用)。
Resources是解决方案中的另一个项目,其他的不是。当我打开系统引用的属性选项卡时,Path
字段为空,因此 Resolved
字段为 False
...
此外,在 .csproj 文件中一切似乎都正常,在需要的地方有 <HintPath>
个节点,具有相对(或绝对,如果引用在另一个驱动器上)和正确的现有路径。
另一件奇怪的事情:在对象浏览器中,所有的引用(似乎)都被加载了:
那么,我该怎么办:
- 重新创建项目文件(通过创建新项目并再次添加所有文件和引用);
- 更改项目的配置;
- 使用较新版本的 .Net;
- 更改 VS 配置中的一些内容;
- 使用另一个 VS(例如 Community 2015)还是重新安装当前的?
主要问题是 FRAMEWORK 引用。
将项目加载到 VS 中并在项目属性页面(目标框架)中进行更改,升级到 .NET 4.x(不是客户端)或 .NET 4.5
我也遇到了这个问题,我花了一些时间才弄明白。问题是 NuGet 改变了包的恢复方式。 "old way" 需要包含 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>
这导致项目被破坏。
要解决此问题,请将丢失的目录复制到项目中(使用旧版本的 Visual Studio/NuGet 或从拥有它的同事那里获取)或者只是简单地从项目文件中删除上述部分。
为获得最佳效果,请同时删除:
<RestorePackages>true</RestorePackages>
和
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
来自项目文件!
在此处查找有关该主题的更多信息:
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
确保两个项目都针对相同的框架版本。对于 ex:one 与目标框架 .Net Framework 4.5.1 将无法与 4.5
一起使用如果您正在使用 "TFS",或任何其他版本控制系统,我已经解决了问题:
将解决方案文件与最新的进行比较。我这样做并意识到 visual studio 本身为 x86 添加了很多配置,这导致了问题,即使我尝试使用 x64 构建。签出文件然后撤消更改就成功了。
当我将项目移动到另一个文件夹时,我在 VS-2015 中遇到了这个问题(项目未加载引用)。 而且新文件夹的名字很大,我缩短了名字,重新加载项目然后就开始工作了。