将 NuGet 包信息添加到 .NET Framework 项目时出现无关加载错误

2023-11-30

我是 JetBrains 产品的用户,更具体地说是 IDE Rider。

我的同事主要是微软产品的用户,更具体地说是Visual Studio。

因此,当他在 Visual Studio 中打开我的解决方案或 c# 项目时,我感到相当惊讶,它们被破坏了。(具体项目的属性)

ms-visual-studio-error

该错误有点误导,因为提到的常量实际上是定义的。 这也具有误导性,因为错误的原因是在.csproj-file.

对我来说,这个错误与原因有些无关,因此我对如何继续感到非常困惑。

这是该错误的完整输出:

System.ArgumentException: Expected 1 values for property Build::DefineConstants, but got 0.
Parameter name: values
   at Microsoft.VisualStudio.ProjectSystem.VS.Implementation.PropertyPages.Designer.Property.Update(ImmutableArray`1 values)
   at Microsoft.VisualStudio.ProjectSystem.VS.Implementation.PropertyPages.Designer.Property..ctor(PropertyMetadata metadata, ImmutableArray`1 values, PropertyContext context, ImmutableHashSet`1 varyByDimensions)
   at Microsoft.VisualStudio.ProjectSystem.VS.Implementation.PropertyPages.Designer.PropertyContextFactoryBase.ToProperty(IUIProperty property, Page page, Category category, Int32 order, PropertyContext propertyContext, IPropertyEditorRegistry propertyEditorRegistry)
   at Microsoft.VisualStudio.ProjectSystem.VS.Implementation.PropertyPages.Designer.ProjectPropertyDataAccess.Observer.<HandleDataAsync>g__CreateProperties|14_5(<>c__DisplayClass14_0& )
   at Microsoft.VisualStudio.ProjectSystem.VS.Implementation.PropertyPages.Designer.ProjectPropertyDataAccess.Observer.<HandleDataAsync>g__ProcessInitialData|14_1(<>c__DisplayClass14_0& )
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.ProjectSystem.VS.Implementation.PropertyPages.Designer.ProjectPropertyDataAccess.Observer.<InitializeAsync>d__10.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.VisualStudio.ProjectSystem.VS.Implementation.PropertyPages.Designer.ProjectPropertyDataAccess.Observer.<CreateAsync>d__9.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.ProjectSystem.VS.Implementation.PropertyPages.Designer.ProjectPropertiesEditor.<>c__DisplayClass0_0.<<-ctor>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.ProjectSystem.VS.Implementation.PropertyPages.Designer.AsyncLoadContent.<>c__DisplayClass0_0.<<Initialize>b__0>d.MoveNext()

但我可以在 Rider 中毫无问题地打开这些项目属性:

jetbrains-rider-project-properties

我已将问题范围缩小到特定的信息属性,我用它来将信息放入 NuGet 包中。本文档/指南提到我应该为此使用程序集信息,但我在使用时遇到了获取程序集信息的问题nuget pack,这就是为什么我在.csproj-file.

然后我求助于以下信息“使用 MSBuild 创建 NuGet 包”-文档,这是更好的选择,因为我可以将打包集成到构建中。

通过添加 NuGet-Target-Package,我看到 Rider 中出现了一个新选项卡,它允许我编辑这些信息。 这让我感觉我在 Rider 中做了正确的事情,但在 Visual Studio 中看到结果,让我看起来像是在对我不知道的 NuGet 规范做了非常无意的事情。

编辑!这是 csproj 文件的完整版本


<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{63B8CCEF-5C50-4F25-8E6B-C623DA1BDD2F}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>Testcenter.RobotFramework</RootNamespace>
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
    <AssemblyName>Testcenter.RobotFramework</AssemblyName>
    <FileAlignment>512</FileAlignment>
    <DefineConstants>DEBUG</DefineConstants>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
    <!-- Properties which cause problems in Visual Studio. The error doesn't occur if these are commented out.
    <TargetFramework>netframework4.8</TargetFramework>
    <PackageId>Testcenter.RobotFramework</PackageId>
    <Version>1.0.0</Version>
    <Authors>Testcenter Team, Some Person</Authors>
    <Company>SomeCompany</Company>
    <PackageOutputPath>$(ProjectDir)</PackageOutputPath>
    <Description>A class library to implement a remote library interface conforming to RobotFramework.</Description>
    <Title>RobotFramework Remote-Library-Interface for C#</Title>
    <Copyright>Copyright (c) SomeCompany 2022</Copyright>
    <RepositoryUrl>https://redacted.url.com</RepositoryUrl>
    <Product>Testcenter.RobotFramework</Product>
    <AssemblyVersion>1.0.0</AssemblyVersion>
    <FileVersion>1.0.0</FileVersion> -->
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Testing|AnyCPU' ">
    <OutputPath>bin\Testing\</OutputPath>
    <DefineConstants>TEST</DefineConstants>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Libraries|AnyCPU' ">
    <OutputPath>bin\Libraries\</OutputPath>
    <DefineConstants>ONLY_LIBRARY</DefineConstants>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="mscorlib" />
    <Reference Include="System" />
    <Reference Include="System.ComponentModel.Composition" />
    <Reference Include="System.Configuration" />
    <Reference Include="System.Core" />
    <Reference Include="System.Data" />
    <Reference Include="System.IO.Compression" />
    <Reference Include="System.Xml" />
    <Reference Include="System.Xml.Linq" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Configuration\LibraryConfig.cs" />
    <Compile Include="Configuration\ServerConfiguration.cs" />
    <Compile Include="Configuration\XML\AssemblyElement.cs" />
    <Compile Include="Configuration\XML\AssemblyElementCollection.cs" />
    <Compile Include="Configuration\XML\PortElement.cs" />
    <Compile Include="Configuration\XML\XmlServerConfiguration.cs" />
    <Compile Include="Keyword\IKeywordManager.cs" />
    <Compile Include="Keyword\Keyword.cs" />
    <Compile Include="Keyword\KeywordErrorType.cs" />
    <Compile Include="Keyword\KeywordManager.cs" />
    <Compile Include="Keyword\KeywordResult.cs" />
    <Compile Include="Keyword\KeywordStatus.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="Trash\XmlDocumentation.cs" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="README.md" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="NLog" Version="5.1.0" />
    <PackageReference Include="NuGet.Build.Tasks.Pack" Version="6.4.0">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Testcenter.RobotFramework.Exceptions" Version="1.0.0" />
    <PackageReference Include="Testcenter.TestAutomation.Utility" Version="1.0.0" />
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
         Other similar extension points exist, see Microsoft.Common.targets.
    <Target Name="BeforeBuild">
    </Target>
    <Target Name="AfterBuild">
    </Target>
    -->
</Project>

我的目的是将NuGet包信息嵌入到相应的项目文件中,而不需要创建一个.nuspec.

但遇到这个错误后,感觉这可能是一场误会。

我现在非常不确定什么是正确的,在以下方面:

  • 如果我要遵守某些“规范”,我应该将这些 NuGet-Assembly 信息放在哪里?(我没有找到必要的信息)
  • 从 .Net 框架包创建 NuGet 包时,我通常需要 NuGet-Spec 文件吗?(NuGet-Spec 到底是什么?为什么我需要它?)
  • 和有什么区别.Net NuGet 包 and a .Net框架包?

我发现所有这些都非常令人困惑,因为在打包 C# 项目或创建 NuGet 方面我还很陌生。

但我被迫使用 .NET Framework 4.8,与 .NET core 相比,这显然使得这个过程不是很简单。


与您问题中的实际错误消息相关。

The DefineConstants错误确实有点误导。我能够从你的首字母开始重现它.csproj在我的机器上并将其缩小到TargetFramework财产。

Removing

<TargetFramework>netframework4.8</TargetFramework>

允许打开项目属性而不会出现错误。将其更改为

<TargetFramework>net48</TargetFramework>

重新引入错误。

进一步挖掘,似乎是 Visual Studio 实例是否安装了 .NET Framework 4.8 SDK 与 .NET Framework 4.8 目​​标包的问题(参考Visual Studio 无法定位 .NET Framework 4.8)。另请参阅目标框架文档.

此外,它还有助于确定正确的项目格式,弄清楚如何继续。

您的是一个迁移的非 SDK 项目,使用NuGet.Build.Tasks.Pack.

正确的语法是使用TargetFrameworkVersion only.

<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>

(显然没有更多关于此的文档)


与您问题的 NuGet 部分相关

您问题的 NuGet 部分实际上与您遇到的错误完全无关,但我会回答您的观点。

我的目的是将NuGet包信息嵌入到相应的项目文件中,而不需要创建一个.nuspec.

这很好,并且 NuGet 包/发布方案(.NET 和 .NET Framework)都支持这一点。事实上,这是受到鼓励的。您需要阅读文档以了解哪些文档对 NuGet 很重要。

但遇到这个错误后,感觉这可能是一场误会。

Yes

我应该将这些 NuGet-Assembly 信息放在哪里......

一般在.csproj和/或使用程序集属性来表示版本等。

从 .Net 框架包创建 NuGet 包时,我通常需要 NuGet-Spec 文件吗? (NuGet-Spec 到底是什么?为什么我需要它?)

是的,它是一个清单文件,并嵌入到 NuGet 包中。如果您将属性放入csproj文件,这是生成的,您不必手动创建它。

.Net NuGet 包和 .Net Framework 包之间有什么区别?

从 NuGet 包管理器的角度来看,实际上什么也没有。各种包管理器都需要清单,需要包内容(程序集和任何其他内容),并且需要按照作者意图的方式安装包。

从打包/发布的角度来看,步骤基本相同,但工具不同。

最后...

作为实验,如果您有权访问启用了 ReSharper 的 VS 实例,则可以尝试基于 ReSharper 的构建。我很确定它也不使用 MSBuild,因此看看您的错误是否随之发生可能会很有趣。

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

将 NuGet 包信息添加到 .NET Framework 项目时出现无关加载错误 的相关文章

  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 重载<<的返回值

    include
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • 确保子进程在退出 Python 程序时死亡

    有没有办法确保所有创建的子进程在Python程序退出时都死掉 我所说的子进程是指那些使用 subprocess Popen 创建的进程 如果不是 我是否应该迭代所有发出的kills 然后kills 9 有什么更干净的吗 您可以使用atexi
  • Python pandas:通过将存储在不同列中的值转换为繁体中文来创建一个包含英文值的新列

    我有一个专栏 City trad chinese 在 pandas 数据框中 df 其中包含繁体中文的值 我需要创建另一个专栏 City English 其中必须包含英文翻译值 我怎样才能用Python做到这一点 我尝试了以下方法 impo
  • Breezejs AngularJS 中的双重麻烦

    我正在尝试将角度视图中的值从整数更改为绑定到 ngmodel 的浮点 双精度值 输入不包括整数以外的任何内容 我的猜测是 微风在后台执行某些操作来验证 定义的属性 上的值或某些内容 但我对 JavaScript 原型设计的了解非常有限 我需
  • Greasemonkey、Chrome 和 unsafeWindow.foo()

    我有以下锚标记 其中包含动态生成的参数arg1 arg5到 JavaScript 函数foo 它在网站端运行 整个页面中有几个这样的锚标记 它们具有独特的id价值观和argN values a href target self title
  • JavaScript 函数 close() {} [重复]

    这个问题在这里已经有答案了 我在 JS 中创建了一个名为 close 的函数 function close 并进行 onclick 调用 onclick close 但这行不通 如果我将函数重命名为任何名称 它就会起作用 难道是JS中禁止使
  • 在 R data.table 中连接具有相同(非键控)列名的表

    连接 data tables 时如何处理同名的非键列 我正在寻找解决方案table fieldSQL 中的表示法 例如 假设我有一个表 DT 其中重新填充了列的新数据v每个时间段 我还有一个表 DT HIST 用于存储以前时间段的条目 t
  • 从 Google 地图和 HTML 5 GeoLocation 获取国家/地区代码

    我正在尝试使用 HTML 5 GeoLocation 获取经度和纬度 然后使用 Google Maps API 获取该经度 纬度的国家 地区代码 谁能告诉我我的代码哪里出了问题 我目前在 main js 中收到 Javascript 错误
  • WPA 看不到 ETW 事件数据,tracerpt 可以

    我正在捕获 ADO Net 诊断 ETW 如中所述SQL Server 2008 中的数据访问跟踪 设置有效 生成了一个 ETL 文件 如果我使用 例如 我可以看到 ADO Net 跟踪tracerpt System Data TextA
  • 如何在字符串中包含变量? [复制]

    这个问题在这里已经有答案了 因此 我们都应该知道 您可以通过执行以下操作将变量包含到字符串中 String string A string aVariable 有没有办法做到这一点 String string A string aVaria
  • python:当类属性、实例属性和方法都具有相同名称时会发生什么?

    当名称相同时 python 如何区分类属性 实例属性和方法 class Exam object test class var def init self n self test n def test self print method se
  • 匿名类怎么可以有参数呢?

    我不是java人 但我继承了一些需要修补的代码 我将源代码拉入 netbeans 中 但收到错误 匿名类实现接口 不能有争论 这是代码 Executor background Executors newSingleThreadExecuto
  • 使用二分搜索和 Trie 的复杂性

    给定文件中按字母顺序排序的单词的大列表 我需要编写一个程序 给定单词 x 确定 x 是否在列表中 预处理是可以的 因为我将通过不同的输入多次调用此函数 优先事项 1 速度 2 记忆 我已经知道我可以使用 n是单词数 m是单词的平均长度 1
  • ARM 上的硬件断点

    硬件断点在 ARM 处理器上如何工作 我可以看到在 x86 和 x64 上有 6 个调试寄存器 DR0 到 DR7 有人可以给我指点资源吗与此类似但对于ARM呢 ARM 架构支持硬件和软件断点 在 Cortex A7 ARM 的 ARM v
  • 如何在java中继续执行try catch语句[重复]

    这个问题在这里已经有答案了 可能的重复 Java 尝试 捕获 继续 我正在从文本文件中读取信息 如果读取的类型无效 我希望我的代码抛出异常 但是 我不知道如何让我的程序在发现异常后继续运行 while input hasNext try t
  • 我怎样才能找出为什么nodejs没有完全退出?

    首先让我解释一下 干净地退出 是什么意思 如果我有一个nodejs应用程序并且我设置了很长一段时间 或者如果我打开一个没有关闭的套接字连接 那么当我运行该应用程序时它不会退出 原因很清楚 我认为这是一个很好的原因 nodejs 的工作方式是
  • 缺少 1 个必需的位置参数:'pk'

    我是 Django 的新手并做出反应 我上周已经遇到了这个错误 当时是请求 URL 错误 昨天我改变了后端设计 现在又出现错误了 这是我的网址 gt urlpatterns url r allowances mas AllowanceAPI
  • MongoDB Stitch 将数据返回为 $NumberDouble 而不是数字本身

    我正在使用 MongoDB Stitch 创建启用数据的 API 但是当我发出 GET 请求时 会返回数据 其中数字显示为 firstHit numberInt 3 我希望他们返回的地方如下 firstHit 3 我在对象中有很多对象 并且
  • 以编程方式增强 ImageView 亮度

    我有一个 Android 应用程序 我用下面的代码增加图像的亮度 但这非常慢 所以有人知道在android中增强imageview的图像亮度的快速方法吗 请记住 这是提高图像视图亮度而不是屏幕亮度 public static Bitmap
  • 学习在 MATLAB 中构建带状矩阵

    我正在尝试建造正方形带状矩阵 using blkdiag or spdiags 但无法弄清楚如何 我找到了文档spdiags有点令人困惑 并且不确定我可以通过简单的调用来构建这些矩阵blkdiag 我想从两个参数构建一个方带矩阵 带的宽度
  • 将 NuGet 包信息添加到 .NET Framework 项目时出现无关加载错误

    我是 JetBrains 产品的用户 更具体地说是 IDE Rider 我的同事主要是微软产品的用户 更具体地说是Visual Studio 因此 当他在 Visual Studio 中打开我的解决方案或 c 项目时 我感到相当惊讶 它们被