ASP.NET Core发布带有输出的FDD(而非SCD)

时间:2018-07-09 10:22:19

标签: asp.net-core .net-core

我想用framework dependent deployments - FDD发布文件夹。但是,只要我要定位到其他目录然后再​​使用默认目录,应用程序将发布为self contained deployments - SCD

此部署为FDD:

Moment moment = new Moment(description, sports_id, location, body);
Call<JsonElement> call = apiservices.postMoment(auth_token, moment);

这是SCD:

dotnet publish -c Release

如何部署为FDD并定义输出目录?
我正在使用.NET Core 2.1。

我也尝试过(但不起作用):

dotnet publish -c Release -o "d:\temp\publish"

我的dotnet publish -c Release -o "d:\temp\publish" -f netcoreapp2.1 文件是:

.csproj

状态:

不确定这是否是错误,但是here在GitHub上是问题。

3 个答案:

答案 0 :(得分:1)

MSTest Test project (.NET Core)添加到项目中时出现了问题。

解决方案是指定目标项目,而不是发布整个解决方案。

这有效:

dotnet publish ./Hosting/Hosting.csproj -c Release -o d:\temp    //publish project

而不是:

dotnet publish -c Release -o d:\temp   //publish solution

Here is link以获得更多说明。

答案 1 :(得分:0)

尝试像下面这样指定框架:

  

dotnet发布-c版本-o“ d:/ temp / publish” -f netcoreapp2.1

more info about dotnet publishexamples for publishing

答案 2 :(得分:0)

output选项对这两个选项均有效,框架相关的部署(FDD)和自包含的部署(SCD)之间的区别在于-r RID选项以及可选的--self-contained true/false标志(使用true选项时,默认值为-r

因此,您可以使用它来创建FDD:

dotnet publish -c Release -o "D:\temp\publish-fdd"

和具有以下内容的SCD:

dotnet publish -c Release -r win-x65 -o "D:\temp\publish-fdd"

如果您未指定-o选项,则对于FDD,发布输出将被放入项目的bin\Release\netcoreapp2.1\publish中;对于SCD,发布输出将被放入特定于运行时的子文件夹bin\Release\netcoreapp2.1\publish\win-x64