克隆一个项目,看起来一切顺利,直到我查看参考文献,它们都有黄色警告三角形。 然后我的错误列表将所有引用显示为警告。我的应用程序位于 Visual Studio 2017 上,它是使用 .NET Framework 4.7.2 进行 C# 编码的 MVC。 在我正常的原始应用程序中,参考文献非常好,没有错误,而且效果很好。构建和运行良好。 一旦我关闭克隆,引用就会丢失。 我已经在克隆版本上进行了构建,它显示所有引用作为警告。
我双击引用并收到错误弹出框“无法在对象浏览器中查看此项目,因为它不可用或尚未构建。请确保该项目可用并已构建”。 感觉 Azuredev-ops 只是缺少我的参考文献及其位置。 我是唯一一个从事这方面工作的人,所以应该不会有冲突。 我在发布后立即发布并克隆,结果相同。 我的代码和 Web 配置看起来很好。 我也在其他人的系统上克隆过,这个应用程序也有同样的问题。 仅供参考,我的许多其他应用程序使用克隆都可以正常工作。 只有 1 个应用程序存在问题。我的参考文献是分开的,有些是 Copy Local True,而另一些是 False。 我还删除了一个引用并将其添加回来,它返回时带有警告,就好像从未添加过一样。
警告信息供个人参考: 找不到引用的组件“EntityFramework”。
我还看到 NuGet 包不存在的错误,但是当我查看时,我看到包文件夹中包含所有组件。
对于我所有的 Windows 核心参考文献来说都是如此。 只是我的参考文件夹中的警告符号以供其他参考。
我希望在关闭克隆时不会出现错误。 我已经使用我的机器上传,克隆应该能够使用相同的参考位置。感觉就像 AzureDev-Ops 正在剥离我的参考链接,然后我就找不到它们了。
Azure-DevOps 克隆将引用显示为警告
要解决此问题,您应该确保以下事项:
确保您已选中这两个选项
Allow NuGet to download missing packages
和Automatically check for missing packages during build in Visual Studio
:
确保不要将 \packages 文件夹检查到源代码管理。
当您从 Azure-DevOps 服务器克隆项目并出现缺少引用错误时,您应该使用包管理器控制台中的 NuGet 命令行
Update-Package -reinstall
强制将包引用重新安装到项目中。检查此线程以获取更多信息。注意:尤其需要注意第三点。
更新:
错误:Mircrosoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0
根据错误消息,您似乎没有将包添加到 Visual Studio 中的包源中。
您应该将自定义包发布到 nuget feed,或者您可以创建本地 nuget feed,然后将 nuget feed 路径或本地 feed 路径添加到包源:
查看此文档了解更多详细信息。
希望这有帮助。
我想通了。 我转到原来的版本并重新安装了更新包。 它返回时,Microsoft.CodeDom.Providers.DotNetCompiler.Platform.2.0.0 不存在,但它添加了一个,只是不是 2.0.0。 然后我运行了 Microsoft.CodeDom.Providers.DotNetCompiler 的卸载,将其从我的系统中删除。 然后我将我的原创发布到 AzureDev-ops。 我的克隆崩溃了,并不是所有的引用都被搞乱了,有些仍然是静止的,但我进行了重建并清除了它。 感谢您的回复,它为我指明了正确的方向。
这是我解决这个问题的解决方案:
示例:
<Import Project="..\packages\Microsoft.AspNet.Mvc.5.2.7\build\net45\Microsoft.AspNet.Mvc.targets" />
<HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.7\lib\net45\Microsoft.AspNet.Mvc.dll</HintPath>
替换为
<Import Project="$(SolutionDir)packages\Microsoft.AspNet.Mvc.5.2.7\build\net45\Microsoft.AspNet.Mvc.targets" />
<HintPath>$(SolutionDir)packages\Microsoft.AspNet.Mvc.5.2.7\lib\net45\Microsoft.AspNet.Mvc.dll</HintPath>