使用VS2019构建控制台.netcoreapp3.1应用程序时出错

时间:2020-10-02 16:13:37

标签: visual-studio .net-core nuget

我正在使用VS2019 16.7.5构建控制台HelloWorld .netcoreapp3.1 向导完成后,在构建时出现错误

>C:\Program Files\dotnet\sdk\3.1.402\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(241,5): error NETSDK1004: Assets file 'D:\ConsoleApp2\obj\project.assets.json' not found. Run a NuGet package restore to generate this file.

我尝试过:

PM> dotnet restore
  Determining projects to restore...
C:\Program Files\dotnet\sdk\5.0.100-rc.1.20452.10\NuGet.targets(130,5): error : 'Python 3.6.5' is not a valid version string. (Parameter 'value') [D:\ConsoleApp2\ConsoleApp2.sln]

nuget restore的结果相同。
是的,我有Python 3.6.5,但是即使从环境变量中删除,我也会收到此错误。

1 个答案:

答案 0 :(得分:1)

无论您遇到什么问题,都肯定是特定于机器的,因此,我无法肯定地给您答案,也无法在我的机器上重现它。我知道您说过删除了环境变量,但这是我的最佳猜测,因为MSBuild自动将所有环境变量导入为MSBuild属性。

您可以做的是运行dotnet restore -bl,这将创建一个msbuild.binlog文件。使用https://www.msbuildlog.com/打开它,然后在搜索框中键入“ python”。您会发现字符串来自何处,以及它如何流向NuGet的还原。如果它在项目评估的一开始就被列为属性,除非您在命令行中传递了该字符串,否则几乎可以肯定它来自环境变量。

如果发誓它不是环境变量,请在binlog查看器中右键单击csproj并选择“预处理”,或运行dotnet msbuild -pp:pp.txt并在您喜欢的xml /文本查看器中打开pp.txt。这是将所有MSBuild导入复制/粘贴到单个文件中的csproj。如果python不是通过环境变量传入的,则它一定来自导入,这将在预处理文件中可见。