问题标签 [roslyn-project-system]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 使用新的 CSPROJ 格式时,在代码隐藏中无法识别 WPF 控件
我在 Visual Studio 2017 中使用新的 CSPROJ 格式创建了一个 WPF 应用程序。
经过
我可以成功构建并运行应用程序。但是,我有一个问题,即代码编辑器无法识别放置在 XAML 中的任何控件,因此我收到错误错误并且在编辑器中没有智能感知。
重现步骤
- 推出 VS 2017
- 创建一个新的“WPF App (.NET Framework)”C#项目
- 将 csproj 文件编辑为如下所示:
项目文件:
- 将一个名为“button1”的按钮添加到 MainWindow.xaml,如下所示:
主窗口.xaml
- 尝试在“MainWindow.xaml.cs”中的代码中设置按钮标题。
但是,项目构建并成功运行(请注意,您需要手动运行可执行文件 -F5不起作用......)
c# - 我的 .csproj 是使用 .NET 项目系统还是通用项目系统
我正在阅读 .NET 基金会的.NET 项目系统GitHub 存储库上的文档,发现用于在 Visual Studio 上运行 C# 项目的最新系统默认是新的项目系统;但是,随着旧系统Common Project System (CPS)正在逐步淘汰,有哪些迹象可以帮助我辨别我的项目使用的是哪个版本的项目系统?
这是由 Visual Studio 决定的,还是我能够查看.csproj
文件并知道正在使用哪个系统来管理我的项目?
我不是在寻找 .NET SDK 的版本,而是在寻找哪个项目系统正在运行我的解决方案的文件组织和项目清单。
c# - 如何使用自动生成的 AssemblyInfo 应用程序集:ThemeInfo 属性?
迁移到新的 VS 2017 项目系统后,AssemblyInfo.cs 文件现在默认自动生成。如何在不禁用自动生成assembly:ThemeInfo[]
的情况下将 WPF 所需的属性添加到我的项目中以查找默认文件?Themes\generic.xaml
c# - 将项目从现有 VisualStudioWorkspace 复制到新的 AdhocWorkspace
我们有一个 VisualStudioWorkspace,其中包含在 Visual Studio 中打开的所有项目。现在我们想创建一个新的 AdhocWorkspace 对象,在 VisualStudioWorkspace 中包含一组有限的项目。
是否可以将项目从现有的 VisualStudioWorkspace 复制到新的 AdhocWorkspace?乍一看,只能添加新的空项目(使用 adhocWorkspace.AddProject())。
c# - 如何强制 .Net Core 项目始终根据文件扩展名采取文件 Build Action
问题:
如果我从 Visual Studio 更改文件扩展名,文件Build Action
将根据以前的Build Action
而不是根据新的文件扩展名。
有一种方法可以强制 Visual Studio 始终从文件扩展名中获取构建操作?
例子:
创建一个新的 .Net Core 3.1 类库。有一个文件 (
/li>Class1.cs
)csproj
会是这样的:将名称更改
Class1.cs
为Class1.txt
从视觉工作室。结果,Class1.txt
虽然Build Action
Compile
它是一个文本文件。csproj的内容:
附加信息:
- 我正在使用 Visual Studio 2019。
- 如果我从文件系统更改文件扩展名,则不会出现问题。
更新:
一种可能的解决方案是在每次重命名文件后更改文件Build Action
,但我想要一种自动方式。
compiler-errors - OutKind.ConsoleApplication Err(Roslyn 编译器)
我用 roslyn 编译了一些诊断错误,显示我的代码如下:
Err 来到这一行:--> var compileResult = compilation.Emit(stream); 错误是:当前上下文中不存在名称“控制台”。(诊断错误)如何解决此错误
c# - 使用 roslyn,如何获得一种“var”?
我想得到由var
.
我试过了GetSymbolInfo()
,GetTypeInfo()
第一个返回null
,第二个返回{?}
。
使用 Roslyn 获取“var”类型 它提供的方法也不起作用。下图附上调试信息。可以看到这些值都是 null 或者 {?}。
我的代码看起来像这样
我在 Visual Studio 2019 中尝试了 Syntax Visualizer 工具,它显示了正确的类型。
GetDiagnostic() 的结果如下:
c# - 无法通过 Roslyn 编译检索 Control 的 XAML 成员
给定 WPF 窗口的 INamedTypeSymbol,我似乎无法为在 XAML 中定义的成员获取 ISymbol(然后编译为自动生成的 .g.cs 文件的一部分)。
为了重现我遇到的问题,
- 在 Visual Studio 中创建一个新的空白 WPF 应用程序
- 添加
<TextBlock Name="tb1"/>
到 MainWindow.xaml - 将以下代码放入 MainWindow.xaml.cs 方法并调用它:
如您所见,断言失败,我似乎找不到代表“tb1”成员字段的 ISymbol。
我怎样才能得到 tb1而不求助于设置?x:FieldModifier="public"
TextBlock