小编far*_*121的帖子

还原 Visual Studio 2019 更新

我从 VS 2019 16.0.3 升级到 16.0.4,它破坏了我的一些项目的调试。

VS 2017 有一个用于下载旧版本的页面,但我找不到与 VS 2019 类似的内容。

如何降级我的 VS 2019 版本?

visual-studio visual-studio-2019

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

Roslyn加载项目文档失败

在Visual Studio扩展(VSIX)解决方案中,我使用Roslyn从当前解决方案加载特定项目:

Project myProject = 
    this.CurrentComponentModel.GetService<VisualStudioWorkspace>()
        .CurrentSolution.Projects
             .FirstOrDefault(p => p.Name == "MyProject")
Run Code Online (Sandbox Code Playgroud)

proProct myProject肯定是加载的,但在检查时我看到:

myProject.HasDocuments == false
myProject.Documents is Empty
Run Code Online (Sandbox Code Playgroud)

然而,在Visual Studio中,我可以看到大量文档.

如果我关闭解决方案并从另一个TFS分支打开相同的解决方案,则相同的代码返回:

myProject.HasDocuments == true 
myProject.Documents is not Empty
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

c# visual-studio visual-studio-extensions roslyn roslyn-code-analysis

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

C# 源生成器 - 警告 CS8032:无法创建分析器的实例

我正在尝试构建一个源代码生成器。现在,只是返回“Hello World”的最基本的静态方法。

生成器项目构建,但生成的代码不可用,调试器从不启动,构建输出显示

CSC:警告 CS8032:无法从 ...\bin\Debug\net5.0\Generator.StaticPropertyEnum.dll 创建分析器 Generator.StaticPropertyEnum.helloWorld 的实例:无法加载文件或程序集“System.Runtime, Version=5.0” .0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其依赖项之一。该系统找不到指定的文件..

我参考的例子

我试过了

  • 更改生成器和测试项目的 TargetFramework 和 LanguageVersion
  • 引用许多版本的分析器库Microsoft.CodeAnalysis.CSharpMicrosoft.CodeAnalysis.Analyzers
  • 引用显式版本 Microsoft.Net.Compilers.Toolset
  • 添加对 NetStandard 库的显式引用
  • 使用分析器项目模板从头开始
  • 寻找生成器项目模板(但没有找到)

版本

Visual Studio:版本 16.8.3
.NET SDK:5.0.101

代码

生成器.csproj

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.9.0-2.final" PrivateAssets="all" />
    <PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.0.0" PrivateAssets="all" />
  </ItemGroup>
 
</Project>
Run Code Online (Sandbox Code Playgroud)

测试 csproj

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>

    <IsPackable>false</IsPackable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" /> …
Run Code Online (Sandbox Code Playgroud)

.net c# code-generation c#-9.0

7
推荐指数
4
解决办法
3269
查看次数

Jekyll 开始 * 和 * 结束摘录分隔符

我正在用 Jekyll 写博客。我知道 jekyll 有excerpt_separator可用于指定摘录的结尾,例如

\n
This is a blog post, click to see more than this\n<!-- more -->\nThis is not in excerpt\n
Run Code Online (Sandbox Code Playgroud)\n

不过,我想在每篇博文的开头引用一句话,但不要在摘录中包含该引用。就像是

\n
>   \xe2\x80\x9cThere are two ways of constructing a software design: One way is to make it\n>   so simple that there are obviously no deficiencies and the other way is to\n>   make it so complicated that there are no obvious deficiencies.\xe2\x80\x9d \xe2\x80\x93 C.A.R. Hoare\n\n<!-- begin_excerpt -->\nThis is the excerpt\n<!-- end_excerpt -->\n\nNot part of …
Run Code Online (Sandbox Code Playgroud)

markdown jekyll

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

如何在 Marp 演示文稿中设置代码块的样式?

我想增大我的一张 Marp 幻灯片上代码块的字体。

如何设置单个代码块的样式而不影响周围的文本?

markdown slideshow marp

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

使用 NSwag 和 AutoREST 创建一个代码客户端/扁平化控制器

我正在尝试使用 NSwag 和 Autorest 为 api 创建代码包装器。

以前我使用 Swashbuckle 来生成 swagger 文件。它生成了格式为 operationIds 的 swagger 文件actionMethod。这导致 Autorest 生成一个深度为 1 的代码客户端。所有的动作都在顶级班级。

由于各种原因,我需要将 swagger 生成更改为 NSwag。这将生成格式为 operationIds controller_actionMethod。这导致 AutoRest 创建一个复合类,该类公开带有每个控制器操作的单独类。

怎么可能

  • 更改 NSwag 生成 operationId 的方式
  • 更改 Autorest 映射 operationIds 的方式

注意:我知道我可以手动更改 swagger.json,但我希望保持一致的自动化流程来生成代码客户端。

swagger autorest nswag

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

.NET 交互式笔记本:如何覆盖 nuget 包版本?

我正在为 VSCode 使用 .NET 笔记本。当前版本:v1.0.2419011

我正在尝试使用 nuget 包进行实验

我首先像这样加载包

#r "nuget: Microsoft.CodeAnalysis.Workspaces.MSBuild"
Run Code Online (Sandbox Code Playgroud)

然后我意识到我需要预览版本

#r "nuget: Microsoft.CodeAnalysis.Workspaces.MSBuild, 4.0.0-3.final"
Run Code Online (Sandbox Code Playgroud)

但是,笔记本不允许我更改软件包的版本。它的错误是

错误:无法添加 Microsoft.CodeAnalysis.Workspaces.MSBuild 版本 4.0.0-1.final,因为之前添加了版本 3.11.0。

我没有看到任何清除包或强制覆盖的选项。在之前加载不同版本后如何更改软件包版本?

.net f#-interactive visual-studio-code jupyter-notebook

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