在项目文件旁边的UWP应用程序Microsoft.Bcl.Build和packages.config构建错误

ems*_*tea 15 win-universal-app

构建Windows Universal应用程序时,我遇到了一个奇怪的构建错误.

严重级代码说明项目文件行抑制状态错误无法找到C:\ Users\me\Source\Repos\TT\Windows\MyCommonLibrary\packages.config.确保此项目已安装Microsoft.Bcl.Build,并且packages.config位于项目文件旁边.MyApp的

'MyApp'有一个项目引用'MyCommonLibrary'.

真正奇怪的是,即使它显示为构建"错误".这不会影响我构建"MyApp"或"MyCommonLibrary"的能力!

它也不会阻止我在本地或其他地方部署和运行我的应用程序.当它没有破坏构建时,将它列为构建错误只是一件令人讨厌的事情!

Ran*_*ngy 13

我跟进了Bcl.Build包的所有者,得到了Eric St. John的回复.他说你不应该在你的使用project.json的UWP项目中引用Bcl.Build,并且有一个项目属性来禁止告诉你这样做的警告.

正确,问题是大多数那些使用它的包也不知道UWP,如果他们为UWP更新,我们希望他们放弃这种依赖而不是让它工作.对于UWP或任何支持project.json的框架,根本不需要该包.

要使用旧包解决错误,请执行以下操作:

将<SkipValidatePackageReferences> true </ SkipValidatePackageReferences>添加到csproj/vbproj的顶部

  • 是的,该属性不应添加到顶部,因为它无法加载项目文件。我成功将此属性添加到 &lt;PropertyGroup&gt; 部分。有效。 (2认同)

Ame*_*nti 4

我相信这是Nuget 更新到 3.1的误报。

目前,我通过从现有的project.json 中手动创建Visual Studio 所需的packages.config 来解决这个问题。

例如:

项目.json

{
  "dependencies": {
    "Microsoft.Bcl.Build": "1.0.21",
    "Newtonsoft.Json": "8.0.2"
  },
  "frameworks": {
    "uap10.0": {}
  },
  "runtimes": {
    "win10-arm": {},
    "win10-arm-aot": {},
    "win10-x86": {},
    "win10-x86-aot": {},
    "win10-x64": {},
    "win10-x64-aot": {}
  }
}
Run Code Online (Sandbox Code Playgroud)

包配置

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="uap10.0" />
  <package id="Newtonsoft.Json" version="8.0.2" targetFramework="uap10.0" />
</packages>
Run Code Online (Sandbox Code Playgroud)