我的Sln有很多项目。有人拥有目标框架netcoreapp2.1,有人拥有目标框架netstandard2.0,一个项目拥有双重目标框架
<TargetFrameworks>netstandard2.0;net471</TargetFrameworks>
我想用一个命令为win10安装一个articaft:
dotnet publish MySolution.sln -c Release -o "targetFolder" -r win10-x64
使用此命令在使用双目标框架构建项目时出现此错误。这是错误:
C:\Program Files\dotnet\sdk\2.1.402\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.CrossTargeting.targets(31,5) error : The 'Publish' target is not supported without specifying a target framework. The current project targets multiple frameworks, please specify the framework for the published application.
错误已清除。最后,我发现该dll在输出目录中编译,并且似乎是netstandard2.0 dll,因为我的应用程序仍然可以工作。
我不喜欢脏东西,如何解决我的问题?
如果可能的话,我会避免调用N次“ dotnet publish”命令。
答案 0 :(得分:1)
请勿在解决方案上将dotnet publish
与相同的输出目录一起使用。特别是不能使用“ -r”参数。
这很危险,因为:
为所有应用程序(控制台应用程序,Web应用程序)项目分别调用它,或创建一个发布这些应用程序的MSBuild文件。