如何使用dotnet构建.NET Framework ASP.NET应用程序

3

我们有一些ASP.NET Core和.NET Framework ASP.NET应用程序。我们使用msbuilddotnet的混合方式来构建这些应用。

我试图全部使用dotnet,但是构建总是会出现以下错误:

错误 MSB4019: 未找到导入的项目“C:\Program Files\dotnet\sdk\3.0.100-preview5-011568\Microsoft\VisualStudio\v16.0\WebApplications\Microsoft.WebApplication.targets”。请确认声明中的路径是否正确,并且该文件在磁盘上存在。

目前,我只是尝试非常简单的命令dotnet msbuild foo.sln,暂时没有使用任何标志或其他选项。

我已经尝试了多个ASP.NET(非Core)应用程序,它们都会产生相同的错误。


dotnet is the .NET Core-specific tool, MSBuild is the overall build framework that can handle any type of project. Use msbuild in the command line instead to build both types of projects, ie msbuild foo.sln - Panagiotis Kanavos
1
使用“dotnet msbuild”命令对我来说并不能解决这个问题。 - GrantByrne
2个回答

1
针对ASP.NET Web应用程序,需要使用以下代码进行编译。
C:\'Program Files (x86)'\'Microsoft Visual Studio'\[year]\[edition]\MSBuild\Current\Bin\msbuild.exe [project.csproj] /p:VisualStudioVersion=[version] /p:DeployOnBuild=true /p:PublishProfile=[profileName]

你可以在cmd或PowerShell中运行。 根据您计算机上安装的Visual Studio版本和解决方案版本替换标签。
例如:
C:\'Program Files (x86)'\'Microsoft Visual Studio'\2019\Community\MSBuild\Current\Bin\msbuild.exe HelloWorld.csproj /p:VisualStudioVersion=16.0 /p:DeployOnBuild=true /p:PublishProfile=Release

0
我们通过将Microsoft.WebApplication.targets添加为NuGet依赖项来解决了缺少引用的问题,但是dotnet msbuild命令仍然无法编译所有相关的框架和asp.net项目。
我们还在Ubuntu镜像中的Docker容器中启动了构建服务器,希望通过容器化等方式改进基础设施。
然而,我们在使用dotnet可执行文件构建所有可能的项目时遇到了困难,尽管它具有内置的msbuild命令。
有人做到过吗? 这个答案表明这是不可能的 https://dev59.com/H1EG5IYBdhLWcg3watBc#66366638

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接