在我开始讨论之前,对不起,这有点含糊,我真的不知道我要问的范围
我最近正在更新一个项目,但是由于以下错误(为了简化起见,修剪了一些路径),我无法构建该项目进行测试:
项目“ C:\ Users..blah .. \ packages \ System.Runtime.WindowsRuntime.4.6.0-preview4.19212.13 \ build \ net461 .... \ ref \ netstandard2.0 \ System.Runtime。项目列表“ ReferencePath”中的“ WindowsRuntime.dll”未为元数据“ CopyLocal”定义值。为了使用此元数据,可以通过指定%(ReferencePath.CopyLocal)对其进行限定,或者确保此列表中的所有项目都为此元数据定义了一个值。
我在线上搜索了其他解决方案,但找不到导致此问题的答案
关于实际错误,我会假设我可以在编辑器中加载项目文件,然后将%(ReferencePath.CopyLocal)附加到“ CopyLocal”为空值的任何字段中,但这不是似乎是这样
哎呀,我什至不确定我需要查看哪个文件!
任何帮助将不胜感激
答案 0 :(得分:1)
我发现的唯一解决方案是创建一个具有相同文件结构的新项目,该文件结构具有类似的引用,并将导入结构作为新的驱动器号。
然后用这个新的proj文件替换旧的proj文件,并再次手动更新驱动器号以指向正确的位置
在我看来,该错误实际上是错误的,并且是由于重新加载某些Nuget软件包而导致的损坏的副产品
但是,这是A **的全部困扰,因此,如果有人有更好的解决方案而不涉及此操作,请随时发布!
答案 1 :(得分:1)
当我尝试从DotNet 4.5项目迁移到DotNet 4.6.2项目时,问题发生在我身上。当我从package.config迁移到PackageReference时,此问题已解决。
在项目解决方案中的“参考”上单击鼠标右键->选择“从package.config迁移到PackageReference”。
希望这会有所帮助。
答案 2 :(得分:0)
我遇到了类似的问题。我通过删除缓存文件(如 obj、bin 和 .vs 文件)解决了这个问题。希望这对有类似问题的人有所帮助
答案 3 :(得分:0)
我在尝试使用 Auth0 WinForm SDK 制作 MS Office 插件时遇到了这个问题。我得到的错误是:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VisualStudio\v16.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(226,9): error MSB4096: The item "C:\Users\XXXXXXX\.nuget\packages\system.runtime.windowsruntime\4.6.0\buildTransitive\net461\..\..\ref\netstandard2.0\System.Runtime.WindowsRuntime.dll" in item list "ReferencePath" does not define a value for metadata "CopyLocal". In order to use this metadata, either qualify it by specifying %(ReferencePath.CopyLocal), or ensure that all items in this list define a value for this metadata.
为了解决这个问题,我必须从错误消息中编辑引用文件中的第 226 行。在我的情况下,该文件是:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VisualStudio\v16.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets
我改变了这一行:
<_CopyLocalFalseRefPaths Include="@(ReferencePath)" Condition="'%(CopyLocal)' == 'false'" />
为此:
<_CopyLocalFalseRefPaths Include="@(ReferencePath.CopyLocal)" Condition="'%(CopyLocal)' == 'false'" />
我从这里得到了这个解决方案:https://marcelegger.net/referencepath-does-not-define-a-value-for-metadata-copylocal