重构代码结构时出现:【/langversion 的选项“7.3”无效;必须是 ISO-1、ISO-2、3 或 Default 在XXXX类库】

本文介绍了一种解决项目中类库信息错误的方法,首先尝试清理项目并重新生成,若问题未解决,可尝试修改语言版本为【Default】,然后再次重新生成,此方法已验证有效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题已解决,请向下看
在这里插入图片描述
1.先尝试清理项目,再重新生成。
笔者这里重新生成后仍然没有出现。

2.发现错误类库的类库信息错误
在这里插入图片描述
将语言版本修改为【Default】,再重新生成,顺利解决

using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.EditorInput; using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.Runtime; using System; using System.Collections.Generic; using System.Text.RegularExpressions; using System.Windows.Forms; namespace BeamAnnotationPlugin { public class BeamProcessor { // 图层配置 private static string _beamLayer = ""; private static string _dimLayer = ""; // 标注设置 private static double _textHeight = 2.5; private static double _elevationOffset = 0.05; } } public class BeamMark { public string Name { get; set; } = ""; public string Section { get; set; } = ""; public double Elevation { get; set; } = 0; public Point3d Position { get; set; } public bool IsCentralMark { get; set; } = true; } [CommandMethod("BR", CommandFlags.Modal)] public void BeamRecognition() { // 识别集中标注和原位标注 PromptSelectionResult selRes = _ed.GetSelection(); if (selRes.Status != PromptStatus.OK) return; using (Transaction tr = _db.TransactionManager.StartTransaction()) { List<BeamMark> beamMarks = new List<BeamMark>(); foreach (ObjectId id in selRes.Value.GetObjectIds()) { Entity ent = tr.GetObject(id, OpenMode.ForRead) as Entity; if (ent is DBText text && ent.Layer == _beamLayer) { BeamMark mark = ParseBeamText(text.TextString); mark.Position = text.Position; beamMarks.Add(mark); } } // 存储识别结果 StoreBeamData(beamMarks); tr.Commit(); } } private BeamMark ParseBeamText(string text) { // 使用正则表达式解析梁标注 BeamMark mark = new BeamMark(); // 匹配格式: KL1(2) 300x700 (-0.050) Regex regex = new Regex(@"(\w+)\s*$(\d+)$\s*(\d+)x(\d+)\s*(?:$([-]?\d+\.\d+)$)?"); Match match = regex.Match(text); if (match.Success) { mark.Name = match.Groups[1].Value + "(" + match.Groups[2].Value + ")"; mark.Section = $"{match.Groups[3].Value}×{match.Groups[4].Value}"; if (match.Groups.Count > 5 && !string.IsNullOrEmpty(match.Groups[5].Value)) { mark.Elevation = double.Parse(match.Groups[5].Value); } } return mark; } [CommandMethod("AG", CommandFlags.Modal)] public void AutoGenerateMarks() { PromptPointResult ptRes = _ed.GetPoint("\n选择标注插入点: "); if (ptRes.Status != PromptStatus.OK) return; using (Transaction tr = _db.TransactionManager.StartTransaction()) { BlockTableRecord btr = (BlockTableRecord)tr.GetObject( _db.CurrentSpaceId, OpenMode.ForWrite); // 生成集中标注 DBText centralMark = new DBText { Position = ptRes.Value, TextString = FormatBeamText(_currentBeam, true), Height = _textHeight, Layer = _dimLayer }; btr.AppendEntity(centralMark); tr.AddNewlyCreatedDBObject(centralMark, true); // 生成原位标注 Point3d locPos = new Point3d( ptRes.Value.X + 20, ptRes.Value.Y, ptRes.Value.Z); DBText localMark = new DBText { Position = locPos, TextString = FormatBeamText(_currentBeam, false), Height = _textHeight * 0.8, Layer = _dimLayer }; btr.AppendEntity(localMark); tr.AddNewlyCreatedDBObject(localMark, true); tr.Commit(); } } private string FormatBeamText(BeamMark beam, bool isCentral) { // 集中标注格式: KL1(2) 300x700 // 原位标注格式: 300x700 (-0.050) if (isCentral) { return $"{beam.Name} {beam.Section}"; } else { return beam.Elevation != 0 ? $"{beam.Section} ({beam.Elevation:F3})" : beam.Section; } } [CommandMethod("BST", CommandFlags.Modal)] public void BeamStatistics() { List<BeamStatItem> stats = CalculateBeamStatistics(); // 按荷载排序: $ q = \frac{w \times h}{10^6} \times 25 $ stats.Sort((a, b) => b.Load.CompareTo(a.Load)); CreateStatisticsTable(stats); } private List<BeamStatItem> CalculateBeamStatistics() { List<BeamStatItem> stats = new List<BeamStatItem>(); foreach (BeamMark beam in _recognizedBeams) { // 解析截面尺寸 string[] dims = beam.Section.Split(&#39;×&#39;); if (dims.Length != 2) continue; if (double.TryParse(dims[0], out double width) && double.TryParse(dims[1], out double height)) { // 计算荷载: $ q = A \times \gamma $ double area = (width * height) / 1_000_000.0; double load = area * 25; // γ=25kN/m&sup3; stats.Add(new BeamStatItem { Name = beam.Name, Section = beam.Section, Elevation = beam.Elevation, Load = load }); } } return stats; } [CommandMethod("DR", CommandFlags.Modal)] public void DeleteReinforcement() { using (Transaction tr = _db.TransactionManager.StartTransaction()) { // 创建钢筋标注特征过滤器 TypedValue[] filterList = { new TypedValue((int)DxfCode.Start, "TEXT"), new TypedValue((int)DxfCode.LayerName, _dimLayer), new TypedValue((int)DxfCode.Text, "*Φ*") // 匹配钢筋符号 }; SelectionFilter filter = new SelectionFilter(filterList); PromptSelectionResult selRes = _ed.SelectAll(filter); if (selRes.Status == PromptStatus.OK) { foreach (ObjectId id in selRes.Value.GetObjectIds()) { Entity ent = tr.GetObject(id, OpenMode.ForWrite) as Entity; ent.Erase(); } } tr.Commit(); } } [CommandMethod("SE", CommandFlags.Modal)] public void SetElevationOffset() { PromptDoubleOptions opts = new PromptDoubleOptions("\n输入标高偏移值(m): "); opts.DefaultValue = _elevationOffset; opts.AllowNegative = true; PromptDoubleResult res = _ed.GetDouble(opts); if (res.Status == PromptStatus.OK) { _elevationOffset = res.Value; _ed.WriteMessage($"\n标高偏移已设置为: {_elevationOffset:F3}m"); } } private double CalculateAdjustedElevation(double original) { // 应用标高偏移: $ E_{adj} = E_{orig} + \Delta $ return original + _elevationOffset; } [CommandMethod("FS", CommandFlags.Modal)] public void AdjustTextSize() { PromptDoubleOptions opts = new PromptDoubleOptions("\n输入标注文字高度: "); opts.DefaultValue = _textHeight; opts.AllowNegative = false; PromptDoubleResult res = _ed.GetDouble(opts); if (res.Status == PromptStatus.OK) { _textHeight = res.Value; _ed.WriteMessage($"\n文字高度已设置为: {_textHeight}"); } } 以上代码出现的问题 CS0234命名空间“System.Windows”中不存在类型命名空间名“Forms”(是否缺少程序集引用?) CS8803顶级语句必须位于命名空间和类型声明之前。 CS8370功能”顶级语句”在C#7.3中不可用。请使用9.0更高的语言版本。 CS8370功能”本地函数特性”在C#7.3中不可用。请使用9.0更高的语言版本。 CS0106修饰符public”对该项无效 CS0103当前上下文中不存在名称_ed” CS0103当前上下文中不存在名称_db" CS0103当前上下文中不存在名称_beamLayer CS0103当前上下文中不存在名称StoreBeamData” CS0106修饰符private”对该项无效 CS8370功能”本地函数特性”在C#7.3中不可用。请使用9.0更高的语言版本。 CS0106修饰符“public"对该项无效 CS0103当前上下文中不存在名称ed CS0103当前上下文中不存在名称_db” CS0103当前上下文中不存在名称_db” CS0103当前上下文中不存在名称_currentBeam” CS0103当前上下文中不存在名称textHeight CS0103当前上下文中不存在名称_dimLayer” CS0103当前上下文中不存在名称_currentBeam” CS0103当前上下文中不存在名称textHeight CS0103当前上下文中不存在名称_dimLayer CS0106修饰符private"对该项无效 CS8370功能”本地函数特性”在C#7.3中不可用。请使用9.0更高的语言版本。 CS0106修饰符public对该项无效 CS0246未能找到类型命名空间名“BeamStatltem”(是否缺少using指令程序集引用?) CS0103当前上下文中不存在名称“CreateStatisticsTable” CS0106修饰符private"对该项无效 CS0246未能找到类型命名空间名“BeamStatltem”(是否缺少using 指令程序集引用?) CS0246未能找到类型命名空间名“BeamStatltem”(是否缺少using 指令程序集引用?) CS0246未能找到类型命名空间名“BeamStatltem”(是否缺少using 指令程序集引用?) CS0103当前上下文中不存在名称_recognizedBeams CS0103当前上下文中不存在名称“area” CS0246未能找到类型命名空间名“BeamStatltem”(是否缺少using 指令程序集引用?) CS0246未能找到类型命名空间名“BeamStatltem”(是否缺少using指令程序集引用?) CS8370功能”本地函数特性”在C#7.3中不可用。请使用9.0更高的语言版本。 CS0106修饰符public对该项无效 CS0103当前上下文中不存在名称_db CS0103当前上下文中不存在名称dimLayer" CS0103当前上下文中不存在名称_ed” CS8370功能”本地函数特性”在C#7.3中不可用。请使用9.0更高的语言版本。 CS0106修饰符public"对该项无效 CS0103当前上下文中不存在名称_elevationOffset CS0103当前上下文中不存在名称_ed” CS0103当前上下文中不存在名称_elevationOffset CS0103当前上下文中不存在名称_ed” CS0103当前上下文中不存在名称elevationOffset CS0106修饰符“private”对该项无效 CS0161“CalculateAdjustedElevation(double)”:并非所有的代码路径都返回值 CS8370功能”本地函数特性”在C#7.3中不可用。请使用9.0更高的语言版本。 CS0106修饰符“public对该项无效 CS0103当前上下文中不存在名称_textHeight CS0103当前上下文中不存在名称_ed” CS0103当前上下文中不存在名称_textHeight CS0103当前上下文中不存在名称ed CS0103当前上下文中不存在名称textHeight CS8321声明了本地函数BeamRecognition”,但从未使用过 CS8321声明了本地函数AutoGenerateMarks”,但从未使用过 CS8321声明了本地函数BeamStatistics”,但从未使用过 CS8321声明了本地函数DeleteReinforcement”,但从未使用过 CS8321声明了本地函数SetElevationOffset”,但从未使用过 CS8321声明了本地函数“CalculateAdjustedElevation”,但从未使用过 CS8321声明了本地函数AdjustTextSize”,但从未使用过
最新发布
07-04
Visual C# 2010新功能简介 动态支持(Dynamic Support) 通过Dynamic这一新类型,Visual C# 2010对后期绑定到动态类型提供了支持。这一附加能带来了许多新应用,包括简化访问COM API如Office Automation API,动态API如IronPython,以及HTML DOM。 Office编程能力 通过额外的命名参数和可选参数,动态类型,索引属性和可选ref修改器,访问COM接口包括Office Automation API的能力被大幅加强。 类型等价支持(Type Equivalence Support) 相比从主互操作程序集(Primary Interop Assembly)中导入类型信息,现在可以部署一款带有内嵌类型信息的应用。通过内嵌的类型信息,应用可在运行间内使用类型而无需参考运行程序集。如果运行程序集发布了多种版本,那么包含内嵌类型信息的应用可以工作在多版本下而无需重新编译。 协变与逆变(Covariance and Contravariance) 相比泛型参数,协变能使用更具导出性的类型。而逆变则能使用更少导出性的类型。这就允许隐式变换定义类关键字来执行不同接口并通过不同的委托类型提供更灵活的运算方式。不同接口和委托可通过使用新的in和out语言关键字被创建。.NET Framework也可对某些现有泛型接口和委托带来不同的支持,包括IEnumerable<(Of <(T>)>)接口和Func<(Of <(TResult>)>) 与 Action<(Of <(T>)>) 委托。 新的命令行选项 /langversion命令行选项可让编译器接受只在特定C#版本中有效的语法。 /appconfig编译器选项可让C#应用指定程序集的应用配置文件位置。 Visual C# 集成了开发环境。以下部分对Visual Studio集成开发环境(IDE)的加强进行了描述。 调用层次结构(Call Hierarchy) 调用层次结构能通过你的代码进行导航并显示以下信息: · 到所选方式、属性和构造函数的所有调用。 · 接口成员的所有执行。 · 虚方法和抽象方法的所有覆盖。 这能让你更好地理解代码流动并评估代码变更的影响。
这是一个ASP.NET应用程序的配置文件,提供了一些与编译和数据库连接相关的设置。以下是整理后的完整代码: ```xml <?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配置 ASP.NET 应用程序的详细信息,请访问 https://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <system.web> <compilation debug="true" targetFramework="4.7.2" /> <httpRuntime targetFramework="4.7.2" /> </system.web> <system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" /> <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" /> </compilers> </system.codedom> <connectionStrings> <add name="strCon" connectionString="server=.;database=ydw;ID=sa;password=123" /> </connectionStrings> </configuration> ``` 请注意,这只是一个配置文件,可能不能直接运行。它用于配置ASP.NET应用程序的编译和数据库连接设置。你需要将这个配置文件放在正确的位置,并确保其他相关的组件和代码也正确配置和安装,才能使应用程序完整运行。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值