【发布时间】:2018-07-05 09:47:55
【问题描述】:
我有一个 .NET Framework 项目的解决方案,主要是 F#,然后是一些 C#。我使用 Paket 而不是 NuGet 进行数据包管理。现在,我已将我的第一个 .NET Standard 2.0 库添加到此解决方案中。
当我运行我的构建脚本时,该脚本运行另一个构建脚本,它调用 devenv 进行编译,出现错误,指出项目的 obj\project.assets.json 文件丢失。它实际上是在编译时生成的,但前提是编译了其他项目之一。那么为什么会被报告为丢失有点奇怪。
如果我只运行内部脚本,没有问题。如果我打开VS并编译,没有问题。好笑。
我不太确定这些东西是如何工作的——或者不是。但是在谷歌搜索之后,似乎这个文件应该在使用 devenv(Visual Studio)编译之前放在那里,而不是由 devenv 放在那里。
我运行了 Paket 还原。这并没有产生缺少的 project.assets.json。
我搜索了“dotnet restore”的方式。运行此程序时,我在几个较旧的项目中收到此错误。
MSB4020: The value "" of the "Project" attribute in element <Import> is invalid.
所以问题是,我现在该怎么办?
【问题讨论】:
-
只要我一直在使用 F#,这个错误就一直存在;可能与 F# 本身一样长。它与未正确导入 F# MSBuild 目标有关。我最近在一台机器上遇到了这个问题,并通过将
<Choose>部分从github.com/TeaDrivenDev/FilenameEmbeddedMetadataOrganizer/blob/… 开始添加到项目文件中来“修复”它。在下一次 Visual Studio 更新之后,问题就消失了,并且在没有上述“修复”的情况下也能正常工作。