几个月来编写一个应用程序,每次我发布项目时,tis都会生成19个项目(没有wwwroot文件)。从今天起,它会生成202个包含大量.dll的文件(无wwwroot文件)。我不知道发生了什么或我做了什么。我的应用程序使用.NET Core 2.0。我不知道与我的项目有关的信息。大约81/202文件只是Microsoft.AspNetCore库,而43/202文件只是Microsoft.Extensions库。我尝试删除的obj,bin,属性和node_modules仍然是同样的问题。在仅上传文件之前从大量文件中生成的文件后,一切正常。我认为它不是必需的.dll,但我不知道为什么asp.net仍会生成它们。感谢您的任何建议。
编辑:
以下是其中一个评论此问题的用户的请求添加的发布输出,依赖项和发布输出的大屏幕截图:
编辑:
将发布属性从自包含部署更改为依赖框架的部署后,出现新错误,并且从输出中得到新错误:
C:\Program Files\dotnet\sdk\2.1.400-preview-009063\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(125,5): Error NETSDK1068: The framework-dependent application host requires a target framework of at least 'netcoreapp2.1'.
编辑:
现在我尝试创建新项目asp.net core 2.0并尝试发布。同样的问题。我的SDK出了点问题,或者我不知道。
解决方案:
我用目标2.1创建了一个新项目,并移动了所有源文件。解决了几个错误后,一切正常。
答案 0 :(得分:4)
这是由.NET Core SDK版本2.1.400中引入的错误引起的。参见Framework Dependent Publish doesn't work on 2.1.400 #9852
有一种解决方法-通过命令行发布并传递arg static void method2() {
String sql = "select * from Customers";
try (ClosableResultSet rs = Factory.createResultSet(
sql,
(e, action) -> System.out.print(action + ": " + e.getMessage())
)) {
while (rs.next()) {
System.out.print("Name: " + rs.getString("name") + "\n");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
。
示例:
--self-contained false
答案 1 :(得分:3)
我很确定您只是为self-contained deployment选择了发布模式,因此大多数文件只是运行隔离运行时所需的库。要再次返回几个文件,只需进行框架相关的部署(描述相同的文档)
答案 2 :(得分:3)
在Visual Studio 15.8.2上,我也遇到了这个问题。不幸的是,我不能简单地升级应用程序,因为我们对内部管理的已部署服务器有运行时版本限制。因此,即使我可以在最新的SDK版本(2.1.401)上构建,部署应用程序的地方也拥有较旧的SDK版本(2.1.100)。
可以在here中找到.NET Core 2.0的SDK和运行时版本的相关性。
我的问题由此显现出来:构建和重建成功,但是发布失败,并显示错误消息Error NETSDK1068: The framework-dependent application host requires a target framework of at least 'netcoreapp2.1'.
,我从here获悉,默认设置是使用最新安装的版本。
从.NET Core 2.0开始,在确定使用哪个版本的SDK时,将应用以下规则:
- 如果未找到global.json文件,或者global.json没有指定SDK版本,则使用最新安装的SDK版本。最新的SDK版本可以是发布的也可以是预发布的-赢得最高版本号。 (添加了重点)
在同一篇文章中,我学会了使用global.json
文件来解决此错误。我使用git-bash并将cd
移到了我要发布的Web应用程序的本地工作目录中。相应的csproj文件应位于此目录中。从这里我运行以下内容:
dotnet new globaljson --sdk-version 2.1.100
现在,我可以使用以下发布配置设置: -配置:发布 -目标框架:netcoreapp2.0 -部署模式:框架相关 -目标运行时:可移植