重新整理.net core 计1400篇[四] (.net core 修改sdk )
前言
可能有些人还不知道什么是sdk,software development kit,中文是软件开发包的意思。
然后什么是软件开发包?
软件开发工具包是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,一般而言SDK即开发 Windows 平台下的应用程序所使用的SDK。
它可以简单的为某个程序设计语言提供应用程序接口API的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。
一般的工具包括用于调试和其他用途的实用工具。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。
如何修改sdk
来看下我们的解决方案的配置是啥?
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework>
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore" Version="2.2.0" />
</ItemGroup>
</Project>
上面的项目中sdk显示了,现在我们使用是sdk是:Microsoft.NET.Sdk
这时候修改成:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore" Version="2.2.0" />
</ItemGroup>
</Project>
sdk换成了Microsoft.NET.Sdk.Web,然后去除了exe生成文件,这是因为我们部署的时候呢,一般是文件的发布形式。
改完之后,我们来看下文件目录发生了什么变化。
多了一个launchSettings.json 文件:
看下里面的配置是啥?
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:55401/",
"sslPort": 0
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"helloword": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:55402/"
}
}
}
而且你会发现另外一件事:
多了一个iisexpress,我们把配置中的iisSettings的http://localhost:55401/改成http://localhost:3000/
那么看下有什么结果,那么我们在通过iisexpress 启动。
同样我们可以使用命令行进行启动,比如说dotnet run。
这时候我们又两个配置一个是 iisexpress 还有一个是helloword,看下到底会启动哪一个。
会启动profiles 中第一个commandName 为 Project的那一个。
那么如何指定呢?
dotnet run --launch-profile helloword
同样你也可以
dotnet run --no-launch-profile
将会启动默认的服务器,5000和50001,这个是kestrel 默认的,同时也是生成服务器。
既然是默认的,那么就可以修改,该一下。
WebHost.CreateDefaultBuilder().UseKestrel().UseUrls("http://0.0.0.0:10052;http://0.0.0.0:10051;").Configure(app => app.Run(
context => context.Response.WriteAsync("hello word!")
)).Build().Run();
然后运行: