小编Kru*_*sty的帖子

在 Visual Studio 2022 中保存时“设置代码格式”和“使用排序”

我和我的团队在过去几个月里为我们的项目定义了有关 C# 代码格式和样式的规则,因此我们最终得到了一个.editorconfig文件。

而且,我们都安装了扩展Productivity Power Tools,以便在保存文件时(CTRL+S)格式化代码,而不必使用VS内置功能Code Clean Up。当我们意识到后者需要特殊的快捷方式(CTRL+K、CTRL+E)并且团队的每个成员都需要在本地设置此设置(因为无法将其放入源代码管理中)时,我们做出了这个决定。

这种工作方式非常适合 VS 2019。

但是,在上个月,团队的大多数成员升级到 VS 2022,并且扩展Productivity Power Tools 22删除了(显然没有任何原因)Format On SaveRemove and Sort Usings on save功能。

我们显然通过扩展VSE-FormatDocumentOnSave解决了这个问题- 通过在选项Edit.FormatDocument Edit.RemoveAndSort中进行设置Commands。它似乎工作得很好,但我们担心的是,这不是微软的工具,谁知道将来会发生什么。

因此,由于代码风格和格式设置规则是每个团队都关心的问题,考虑到我们是一个由 20 多名开发人员组成的团队,我想知道是否有人知道更好的方法来管理它。

code-formatting visual-studio editorconfig visual-studio-2022

35
推荐指数
3
解决办法
4万
查看次数

具有未加密 HTTP2 连接的 .Net Core 3.1 gRPC 客户端

我正在尝试查询一些在 HTTP 上运行的本地 gRPC 服务。这是我的 net core 3.1 控制台应用程序:

static async Task Main(string[] args)
{
    AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);

    using var channel = GrpcChannel.ForAddress("http://localhost:16050");
    var client = new EventService.EventServiceClient(channel);
    var reply1 = await client.GetTrackEventAsync(new GetTrackEventRequest { Name = "01Austra14" });
}
Run Code Online (Sandbox Code Playgroud)

但它抛出了这个错误:

System.Private.CoreLib.dll 中发生“Grpc.Core.RpcException”类型的异常,但未在用户代码中处理:“Status(StatusCode=”Internal”, Detail=”启动 gRPC 调用时出错。HttpRequestException: 发生错误发送请求时。Http2ConnectionException:HTTP/2 服务器在连接上发送了无效数据。HTTP/2 错误代码“PROTOCOL_ERROR”(0x1)。”,DebugException =“System.Net.Http.HttpRequestException:发送时发生错误请求。 ---> System.Net.Http.Http2ConnectionException: HTTP/2 服务器在连接上发送了无效数据。HTTP/2 错误代码“PROTOCOL_ERROR”(0x1)。

不幸的是,目前我们无法添加 SSL 证书,我们需要暂时使用纯 HTTP(服务应用程序尚未投入生产)。有人知道这里发生了什么吗?

根据文档,调用AppContext.SetSwitch应该足够了。

服务器是一个 Asp Net Core 3.1 应用程序。它运行于:

  • 端口 http://*:16050
  • 端口 https://*:16150。这会正确回复客户端,但如上所述,目前只能在本地使用

服务器提供

  • Http1 和 Http2
  • 同一端口上的 …

c# .net-core grpc asp.net-core

8
推荐指数
1
解决办法
8155
查看次数

如何替换默认的Azure 403错误页面

我有一个ASP.NET MVC部署到Azure,用户通过使用客户端证书登录.在本地,如果用户未发送证书或证书无效,则网站会将用户重定向到/ error/403端点.但在Azure上这不起作用:用户没有重定向到/ error/403,显示的页面始终如下: 在此输入图像描述

这是我在<system.webServer>节点内的Web.Config代码:

<httpErrors errorMode="Custom" existingResponse="Replace">
  <clear />
  <error statusCode="400" path="/error/400" responseMode="Redirect" />
  <error statusCode="404" path="/error/404" responseMode="Redirect" />
  <error statusCode="500" path="/error/500" responseMode="Redirect" />
  <error statusCode="501" path="/error/501" responseMode="Redirect" />
  <error statusCode="503" path="/error/503" responseMode="Redirect" />
</httpErrors>-->
Run Code Online (Sandbox Code Playgroud)

我还尝试<httpErrors existingResponse="PassThrough" />将代码添加或移动system.webServersystem.web使用customErrors节点,但似乎在读取web.config 之前用户被阻止.对于我尝试过的每一项改变,行为都是一样的.

我怎么解决?谢谢

asp.net web-config certificate azure

5
推荐指数
1
解决办法
633
查看次数

WiX安装程序将dll包含在msi中

我正在尝试使用WiX创建安装程序.要将DLL包含到.msi包中,我尝试了两种不同的方法.其中之一是:

<DirectoryRef Id="SETTINGSDIR">
  <Component Id="CMP_CopySettings" Guid="AC7D1AA1-798B-48F5-AF8D-188B1050D47C" KeyPath="yes">
    <CreateFolder />
    <File Id="DBA.bat" Source="$(var.SolutionDir)\scr\A\A.WindowsService\bin\$(var.Configuration)\Settings\A_DB clear.bat" Checksum="yes"/>
    <File Id="AConfiguration.xml" Source="$(var.SolutionDir)\scr\A\A.WindowsService\bin\$(var.Configuration)\Settings\AConfiguration.xml" Checksum="yes"/>
    <File Id="ADB.CE.DEFAULT.sdf" Source="$(var.SolutionDir)\scr\A\A.WindowsService\bin\$(var.Configuration)\Settings\ADB.CE.DEFAULT.sdf" Checksum="yes"/>
    <File Id="ADB.CE.sdf" Source="$(var.SolutionDir)\scr\A\A.WindowsService\bin\$(var.Configuration)\Settings\A.CE.sdf" Checksum="yes"/>
    <RemoveFile Id="RemoveFileSettings" Name="*" On="uninstall"/>
  </Component>
</DirectoryRef>
Run Code Online (Sandbox Code Playgroud)

但是你可以很容易地理解,为每个DLL编写一个xml节点是非常困难的(6个项目每个都有200多个DLL).

第二个更快,但WiX只是创建一个文件夹的链接,而不是复制DLL到msi包

<DirectoryRef Id="SETTINGSDIR">
  <Component Id="CMP_CopySettings" Guid="AC7D1AA1-798B-48F5-AF8D-188B1050D47C" KeyPath="yes">
    <CreateFolder />
    <CopyFile Id="SettingsID" SourceProperty="SETTINGSSOURCEDIRECTORY" DestinationDirectory="SETTINGSDIR" SourceName="*" />
    <RemoveFile Id="RemoveFileSettings" Name="*" On="uninstall"/>
  </Component>
</DirectoryRef>
Run Code Online (Sandbox Code Playgroud)

有没有一个快速的解决方案,我可以在第二种方式添加或我必须使用heat.exe工具?在这种情况下,你能解释一下如何使用它吗?官方文档很差

谢谢

.net c# dll windows-installer wix

1
推荐指数
1
解决办法
497
查看次数