我想用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上是问题。
答案 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
答案 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