Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 项目成功地建立在;Visual Studio 2019->;“建立”;但失败的原因是;MSBuild";_Visual Studio_Msbuild - Fatal编程技术网

Visual studio 项目成功地建立在;Visual Studio 2019->;“建立”;但失败的原因是;MSBuild";

Visual studio 项目成功地建立在;Visual Studio 2019->;“建立”;但失败的原因是;MSBuild";,visual-studio,msbuild,Visual Studio,Msbuild,我有一个项目文件(*.fsproj)。它可以通过Visual Studio 2019的“构建”菜单成功构建 但在调用“Visual Studio 2019的构建工具”(Build Tools for Visual Studio 2019)时,使用以下命令: "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\MSBuild.exe" ".\src\[

我有一个项目文件(*.fsproj)。它可以通过Visual Studio 2019的“构建”菜单成功构建

但在调用“Visual Studio 2019的构建工具”(Build Tools for Visual Studio 2019)时,使用以下命令:

"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\MSBuild.exe" ".\src\[ProjectFolder]\[ProjectName].fsproj" /t:Build /p:Configuration=Release /p:Platform="Any CPU"
dotnet build --configuration Release "[MySolution].sln"
它引发了一个错误
错误MSB4057:项目中不存在目标“生成”。

项目文件:

<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>netstandard2.0</TargetFrameworks>
    <Version>2.0.0.0</Version>
    <FileVersion>2.0.0.0</FileVersion>
    <Configurations>Debug;Release;[...]</Configurations>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="[File1].fs" />
    <Compile Include="[File2].fs" />
    <Compile Include="[File3].fs" />
  </ItemGroup>
  <ItemGroup>
    <None Include="paket.references" />
  </ItemGroup>
  <Import Project="..\..\.paket\Paket.Restore.targets" />
</Project>

netstandard2.0
2.0.0.0
2.0.0.0
调试;释放;[...]
注意:为了保密,我将其替换为[]

问题:是否有方法使MSBuild的行为与Visual Studio中的行为完全相同?我试图在没有Visual Studio IDE的情况下构建*.SLN(由许多*.fsproj和*.csproj组成)

我可以强迫VisualStudio在构建时吐出更多的日志信息(如下所示),但是日志信息太多了,我不知道该找什么

我的解决方案文件(*.SLN)包括许多子项目文件(*.fsproj,*.csproj)。有些项目是用.NET标准2.0编写的;其他则在.NET Core 3.1中。(又名目标框架)

感谢您的回答和建议,不应使用MSBuild,因为我的一些项目是针对.NET Core的。正确的编译工具是带有以下命令的dotnet SDK:

"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\MSBuild.exe" ".\src\[ProjectFolder]\[ProjectName].fsproj" /t:Build /p:Configuration=Release /p:Platform="Any CPU"
dotnet build --configuration Release "[MySolution].sln"
dotnet
构建在MSBuild之上。它添加了一些在MSBuild中不可用的功能,例如
dotnet new
。此外,要编译
dotnet
,必须安装.NET核心SDK(例如v3.1:);无需单独安装MSBuild