我和我的团队在过去几个月里为我们的项目定义了有关 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 Save和Remove and Sort Usings on save功能。
我们显然通过扩展VSE-FormatDocumentOnSave解决了这个问题- 通过在选项Edit.FormatDocument Edit.RemoveAndSort中进行设置Commands。它似乎工作得很好,但我们担心的是,这不是微软的工具,谁知道将来会发生什么。
因此,由于代码风格和格式设置规则是每个团队都关心的问题,考虑到我们是一个由 20 多名开发人员组成的团队,我想知道是否有人知道更好的方法来管理它。
code-formatting visual-studio editorconfig visual-studio-2022
我正在尝试查询一些在 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 应用程序。它运行于:
服务器提供
我有一个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.webServer到system.web使用customErrors节点,但似乎在读取web.config 之前用户被阻止.对于我尝试过的每一项改变,行为都是一样的.
我怎么解决?谢谢
我正在尝试使用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工具?在这种情况下,你能解释一下如何使用它吗?官方文档很差
谢谢
c# ×2
.net ×1
.net-core ×1
asp.net ×1
asp.net-core ×1
azure ×1
certificate ×1
dll ×1
editorconfig ×1
grpc ×1
web-config ×1
wix ×1