我遇到的情况是我有一个缺少引用的解决方案(显示感叹号)但是构建成功并带有消息:
C:\ Program Files (86)\的MSBuild \ 12.0 \ BIN \ Microsoft.Common.CurrentVersion.targets(1697,5): 警告MSB3245:无法解析此引用。找不到 程序集“EntityFramework”。检查以确保装配存在 在磁盘上。如果您的代码需要此引用,您可能会得到 编译错误。
这非常令人担忧,因为我希望使构建失败。
是否有理由将MSB3245作为警告?
答案 0 :(得分:1)
您看到的警告来自MSBuild的ResolveAssemblyReferences目标。它的工作是根据项目XML中给出的信息确定引用程序集的完整路径。例如,ResolveAssemblyReferences在全局程序集缓存(GAC)中找到类似<Reference Include="System.Xml" />
的引用,并将DLL的完整路径传递给编译器。
如果无法确定引用程序集的完整路径,则不会将引用传递给编译器。如果您的实际代码都不依赖于引用,那么编译将成功,构建将继续。
您不能拥有任何实际依赖于传递给编译器的EntityFramework
的代码。