需要重定向 .NET 应用程序的帮助

2024-05-03

我正在尝试让 vscode 启用统一的 c# 代码完成,如下this https://code.visualstudio.com/docs/other/unity指南显示。我曾有一个problem https://stackoverflow.com/q/62111273/13118680早些时候,由于某种原因安装了 .NET 目标包,但没有安装 SDK,有人可以帮助我解决这个问题。但是,我仍然收到错误消息,提示无法找到参考程序集。我已经重新安装了开发人员包、.NET SDK 和目标包,重新启动了计算机,并卸载/重新安装了扩展。日志显示我可能必须重新定位应用程序但这非常模糊,我找不到任何关于如何做到这一点的指南。感谢您的帮助。

编辑:我尝试将目标框架更改为 4.8,但omnisharp 有相同的错误日志,但我也安装了不同的版本。这可能是拥有多个驱动器的问题吗?

.csproj目标框架:

v4.7.1

Omnisharp 错误日志:

于 2020 年 5 月 31 日晚上 7:56:50 启动 OmniSharp 服务器 目标:a:\Github\Unity\2_Terminal_Hacker\2_Terminal_Hacker.sln

OmniSharp 服务器已启动。 路径:c:\Users\0dps1.vscode\extensions\ms-dotnettools.csharp-1.22.0.omnisharp\1.35.2\OmniSharp.exe PID:5544

[信息]:OmniSharp.Stdio.Host 在 Windows 6.2.9200.0 (x64) 上启动 OmniSharp [信息]:OmniSharp.Services.DotNetCliService DotNetPath 设置为 dotnet [信息]:OmniSharp.MSBuild.Discovery.MSBuildLocator 找到 2 个 MSBuild 实例 1:Visual Studio 社区 2019 16.6.30114.105 - “A:\Program Files\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin" 2:独立 16.4 -“c:\Users\0dps1.vscode\extensions\ms-dotnettools.csharp-1.22.0.omnisharp\1.35.2.msbuild\Current\Bin” [信息]:OmniSharp.MSBuild.Discovery.MSBuildLocator 已注册的 MSBuild 实例:Visual Studio Community 2019 16.6.30114.105 - "A:\Program Files\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin" [信息]: OmniSharp.Cake.CakeProjectSystem 检测“a:\Github\Unity\2_Terminal_Hacker”中的 Cake 文件。 [信息]:OmniSharp.Cake.CakeProjectSystem 找不到任何 Cake 文件 [信息]:OmniSharp.MSBuild.ProjectSystem 检测“a:\Github\Unity\2_Terminal_Hacker\2_Terminal_Hacker.sln”中的项目。 [信息]: OmniSharp.MSBuild.ProjectManager “a:\Github\Unity\2_Terminal_Hacker\Assembly-CSharp.csproj”的队列项目更新[信息]: OmniSharp.Script.ScriptProjectSystem 检测“a:\Github\Unity\2_Terminal_Hacker”中的 CSX 文件。 [信息]:OmniSharp.Script.ScriptProjectSystem 找不到任何 CSX 文件 [信息]:OmniSharp.WorkspaceInitializer 调用工作区选项提供程序:OmniSharp.Roslyn.CSharp.Services.CSharpFormattingWorkspaceOptionsProvider, 订单:0 [信息]:OmniSharp.MSBuild.ProjectManager 加载项目:a:\Github\Unity\2_Terminal_Hacker\Assembly-CSharp.csproj [信息]: OmniSharp.WorkspaceInitializer 调用工作区选项提供程序:OmniSharp.Roslyn.CSharp.Services.RenameWorkspaceOptionsProvider, 订单:100 [信息]:OmniSharp.WorkspaceInitializer 调用工作区选项提供程序:OmniSharp.Roslyn.CSharp.Services.ImplementTypeWorkspaceOptionsProvider, 订单:110 [信息]:OmniSharp.WorkspaceInitializer 调用工作区选项提供程序:OmniSharp.Roslyn.CSharp.Services.BlockStructureWorkspaceOptionsProvider, 订单:140 [信息]:OmniSharp.WorkspaceInitializer 配置完成。 [信息]:OmniSharp.Stdio.Host Omnisharp 服务器在主机 4260 上的“a:\Github\Unity\2_Terminal_Hacker”位置使用 Stdio 运行。[失败]: OmniSharp.MSBuild.ProjectLoader 找不到 .NETFramework,Version=v4.7.1 的参考程序集。要解决此问题,请安装开发人员包(SDK/Targeting Pack)适用于此框架版本或重新定位您的应用程序。你可以 下载 .NET Framework 开发包:https://aka.ms/msbuild/developerpacks https://aka.ms/msbuild/developerpacks[警告]: OmniSharp.MSBuild.ProjectManager 无法加载项目文件“a:\Github\Unity\2_Terminal_Hacker\Assembly-CSharp.csproj”。 a:\Github\Unity\2_Terminal_Hacker\Assembly-CSharp.csproj A:\Program 文件\微软视觉 Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(1177,5): 错误:.NETFramework,Version=v4.7.1 的参考程序集是 未找到。要解决此问题,请安装开发人员包(SDK/Targeting Pack)适用于此框架版本或重新定位您的应用程序。你可以 下载 .NET Framework 开发包:https://aka.ms/msbuild/developerpacks https://aka.ms/msbuild/developerpacks

[失败]:OmniSharp.MSBuild.ProjectManager 尝试更新未加载的项目:a:\Github\Unity\2_Terminal_Hacker\Assembly-CSharp.csproj


https://learn.microsoft.com/en-us/dotnet/standard/frameworks https://learn.microsoft.com/en-us/dotnet/standard/frameworks

如果打开 .csproj 文件,您将看到“TargetFramework”标记,并且在其中显示链接中的可能值之一。 “重定向”意味着将“目标框架”值从“net471”更改为“net46”。

不幸的是,由于这是 Unity 项目,Unity 喜欢完全控制 csproj 文件的内容,您所做的任何更改都只是暂时的。因此,您可以重新定位某个目标并使错误消失,但 Unity 稍后会随心所欲地将其恢复为“net471”。

您的选择是:

  1. 修复 .net sdk /vscode 安装是否可以获得目标包。您可以尝试在 VS 社区中打开解决方案,也许它会从 UI 提供修复

  2. Unity 在播放器设置中有一个内置下拉菜单,可以针对 net2 或类似的内容而不是 net471,但那是 c#/net 的非常古老的版本。它最近可能已被完全弃用。

  3. 进行 hacks 将自己注入到 unity csproj 生成中,以便它始终使用您拥有的某个版本(不推荐)

编辑 - 是的,实际上很可能是多个驱动器问题。我从您的日志中看到 Visual Studio Community 安装在 A:\drive 上。参考程序集通常位于“C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework”中。因此,MSBuild.exe 寻找这些内容的位置与目标包实际安装的位置很可能不匹配。

除了尝试在 C:\ 上的默认位置安装 VS 之外,我真的不知道如何解决此问题 - 可能有一些神奇的环境变量可以设置为触发 MSBuild 在正确的位置查找。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

需要重定向 .NET 应用程序的帮助 的相关文章

  • 删除是如何工作的? [复制]

    这个问题在这里已经有答案了 可能的重复 C 编程 free 如何知道要释放多少 https stackoverflow com questions 1518711 c programming how does free know how m
  • 解析 JWT 令牌以仅获取有效负载内容,无需 C# 或 Blazor 中的外部库

    我正在使用 Blazor 编写可以访问 JWT 的客户端应用程序 我想知道一种简单的方法来读取令牌有效负载内容而不添加额外的依赖项 因为我不需要其他信息 也不需要验证令牌 我认为解析有效负载内容应该足够简单 只需将其写入方法即可 JwtTo
  • linq 中使用字符串数组 c# 的 'orderby'

    假设我有一个这样的方法定义 public CustomerOrderData GetCustomerOrderData string CustomerIDs var query from a in db Customer join b in
  • std::call_once 可重入且线程安全吗?

    std call once http en cppreference com w cpp thread call once是线程安全的 但它也是可重入的吗 我使用 VS2012 调试和发布 进行的测试表明 调用std call once从单
  • 是否存在指向不同类型的指针具有不同大小的平台?

    C 标准允许指向不同类型的指针具有不同的大小 例如sizeof char sizeof int 是允许的 但是 它确实要求如果将指针转换为void 然后转换回其原始类型 它必须与其原始值进行比较 因此 从逻辑上来说 sizeof void
  • 如何制作可启动程序?

    所以 这个问题可能看起来很奇怪 但假设我编译了 int main void int x 3 int y 4 int z x y 是否可以让CPU这样运行 如何 例如 这允许我写入监视器吗 如果我没记错的话 内存中有些地方可以写入要显示的内容
  • 在 omp 并行 for 循环中使用 unique_ptr 会导致 SEG.FAULT

    采取以下代码 include
  • 获取 boost Spirit 语法中的当前行

    我正在尝试使用 boostspirit 获取正在解析的文件的当前行 我创建了一个语法类和结构来解析我的命令 我还想跟踪在哪一行找到命令并将其解析到我的结构中 我将 istream 文件迭代器包装在 multi pass 迭代器中 然后将其包
  • 访问 ascx 文件中的母版页控件

    我有一个母版页文件 其中包含 2 个面板控件中的 2 个菜单 我还使用控件来检查用户是否登录并获取用户类型 根据我想要显示 隐藏面板的类型 控件本身不在母版页中引用 而是通过 CMS 系统动态引用 我想在用户控件中使用findcontrol
  • 增强精神、递归和堆栈溢出

    为什么下面的代码在运行时崩溃 它会给出堆栈溢出错误 include
  • 根据对象变量搜索对象列表

    我有一个对象列表 这些对象具有三个变量 ID 名称和值 这个列表中可能有很多对象 我需要根据ID或Name找到一个对象 并更改值 例子 class objec public string Name public int UID public
  • 使用 C# 和 wpf 创建类似 Dock 的应用程序

    我需要创建一个与我们购买笔记本电脑时获得的应用程序类似的应用程序 仅当鼠标指针到达窗口顶部时它才可见 那么我怎样才能使用 C 4 0 来做到这一点呢 http www notebookcheck net uploads pics win2
  • 如何对 NServiceBus.Configure.WithWeb() 进行单元测试?

    我正在构建一个 WCF 服务 该服务接收外部 IP 上的请求并将其转换为通过 NServiceBus 发送的消息 我的单元测试之一调用Global Application Start 它执行应用程序的配置 然后尝试将 Web 服务解析为 验
  • 析构函数中的异步操作

    尝试在类析构函数中运行异步操作失败 这是代码 public class Executor public static void Main var c1 new Class1 c1 DoSomething public class Class
  • 引用/指针失效到底是什么?

    我找不到任何定义指针 引用无效在标准中 我问这个问题是因为我刚刚发现 C 11 禁止字符串的写时复制 COW 据我了解 如果应用了 COW 那么p仍然是一个有效的指针并且r以下命令后的有效参考 std string s abc std st
  • 英文日期差异

    接近重复 如何计算相对时间 https stackoverflow com questions 11 how do i calculate relative time 如何在 C 中计算某人的年龄 https stackoverflow c
  • 在 OpenGL 中渲染纹理 1 到 1

    所以我想做的是使用 OpenGL 和 C 将纹理渲染到平面上 作为显示图像的一种方式 但是我需要确保在渲染纹理时没有对纹理进行任何处理 抗锯齿 插值 平滑 模糊等 这是 OpenGL 处理渲染纹理的默认方式吗 或者是否需要设置一些标志才能禁
  • LINQ 中的“from..where”或“FirstOrDefault”

    传统上 当我尝试从数据库中获取用户的数据时 我使用了以下方法 在某种程度上 DbUsers curUser context DbUsers FirstOrDefault x gt x u LoginName id string name c
  • DataContractSerializer 事件/委托字段问题

    在我的 WPF 应用程序中 我正在使用DataContractSerializer序列化对象 我发现它无法序列化具有事件或委托声明的类型 考虑以下失败的代码 Serializable public abstract class BaseCl
  • 使用未分配的局部变量

    我遇到了一个错误 尽管声明了变量 failturetext 和 userName 错误仍然出现 谁能帮帮我吗 Use of Unassigned local variable FailureText Use of Unassigned lo

随机推荐