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