.NetCore学习笔记

1、建立空的asp.net core Web应用程序,并且发布,发布的时候遇到,views文件里面的文件被打包成xxxx.view.dll,这时我不想让做好的页面打包成xxx.view.dll,.net core3.1的做法是

第一、在web应用程序中安装NuGet包

Install-Package Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation       ,我这里用的是版本是3.1.8

在StartUp类方法 :

public void ConfigureServices(IServiceCollection services)
{
    services.AddRazorPages()
        .AddRazorRuntimeCompilation();
}

执行AddRazorRuntimeCompilation();方法

第二、点击  xx.csproj 在PropertyGroup节点中添加两个子节点如下:  

<RazorCompileOnBuild>false</RazorCompileOnBuild>
<RazorCompileOnPublish>false</RazorCompileOnPublish>
<PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <UserSecretsId>3fa99a4d-3c65-4a0d-bf98-4fdcc842f20a</UserSecretsId>
    <RazorCompileOnBuild>false</RazorCompileOnBuild>
    <RazorCompileOnPublish>false</RazorCompileOnPublish>
  </PropertyGroup>

做到这两步,之后在该项目的文件目录下输入cmd, 执行命令dotnet build;   在执行命令dotnet publish; 发布的时候view或者page文件夹的文件就出现了

参考资料:https://www.cnblogs.com/yyfh/archive/2020/02/27/12373249.html

2、解决NetCore部署到Docker后不能使用Https的问题   :https://blog.csdn.net/li_sj/article/details/104144505

3、.net core3.1 gRPC服务端与客户端共享.proto缓冲文件的做法

1)在gRPC AServer端新建两个A.proto   B.proto  缓冲文件,然后将Protos文件夹拷贝的与.sln文件同目录下  然后右键点击 AServer项目--点击添加--点击服务引用见图

 点击添加

下一步

点击浏览,选择Protos文件夹的.proto文件

点击完成

此时我们的项目.csproj文件的配置就多了配置代码

<ItemGroup>
    <Protobuf Include="..Protosgreet.proto" GrpcServices="Server" />
</ItemGroup>

如果我们添加多个.proto文件这里就会有多个配置代码,如果有几十个那.csproj文件里面就会有很多.proto的文件配置代码,看着不舒服,那么我们可以配置一个通用的路径不管添加多少个.proto文件.csproj文件都只是一个配置代码,请看:

<ItemGroup>
    <Protobuf Include="..Protos*.proto" GrpcServices="Server" Link="Protos\%(RecursiveDir)%(Filename)%(Extension)" />
 </ItemGroup>

 MSBuild变量解释:

**:所有子文件夹
Include:包含所有文件夹的子文件。
Exclude:除去.cs文件。
%(RecursiveDir):目录结构
%(Filename):文件
%(Extension)扩展名

请点击 MSBuild 常见的项元数据   了解更多MSBuild

Protobuf3语言指南

 
原文地址:https://www.cnblogs.com/axinno1/p/14031681.html