如何在解决方案级别使用 Microsoft.Net.Compilers?

2024-03-09

我想开始使用Microsoft.Net.Compilers https://www.nuget.org/packages/Microsoft.Net.Compilers/简化我们的构建服务器的工作。但是,我只能让它在每个项目级别 https://stackoverflow.com/a/32010632/7586,通过将包添加到所有项目。
这是有问题的,因为必须将包添加到每个新创建的项目中。这可能会导致代码在开发人员的计算机(具有最新的编译器)上编译,但在构建服务器上失败。我们的项目很多(超过100个),所以这种情况比较常见。

有没有办法使用Microsoft.Net.Compilers在解决方案级别?

如果没有受支持的方式,是否有一个我不必在构建服务器上安装的命令行工具?或者,这不是这些工具的预期用途吗?


如果在 VS 2017(更新 1,内部版本号 >= 15.1.*)中,您可以使用集成的 MSBuildPackageReference机制代替packages.config以前仅适用于 .net core 和 .net standard 项目类型。请参阅封装参考文档 https://learn.microsoft.com/en-us/nuget/consume-packages/package-references-in-project-files?WT.mc_id=DT-MVP-5002999以及NuGet 博客文章 http://blog.nuget.org/20170316/NuGet-now-fully-integrated-into-MSBuild.html宣布支持,特别是“非 .NET Core 的其他项目类型怎么样?”部分。

The idea is to switch from installing a package and adding it to packages.config for restore to just specifying an MSBuild items in the csproj file. This can be set up for new projects in VS: Switch from packages.config to ProjectReference (animation is from the NuGet blog post linked above)

MSBuild 15 的一个新功能是它支持自动将具有特殊名称的文件包含在目录层次结构中。那些是Directory.Build.props and Directory.Build.targets它将包含在项目文件内容之前(道具)和之后(目标)(有一个错误.targets即将发布修复程序的多目标项目的版本)。

如果您创建一个Directory.Build.props在解决方案级别包含以下内容的文件,其下方目录层次结构中的所有项目将继承它的内容,您可以强制对每个项目添加 NuGet 依赖项:

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

如何在解决方案级别使用 Microsoft.Net.Compilers? 的相关文章

  • 从 future 中检索值时的 SIGABRT

    我在使用 C 11 future 时遇到问题 当我打电话时wait or get 关于返回的未来std async 程序接收从mutex标头 可能是什么问题呢 如何修复它 我在 Linux 上使用 g 4 6 将以下代码粘贴到 ideone
  • 是否有像 gccxml 这样的用于生成包装器的 C 标头解析器工具?

    我需要为一种新的编程语言编写一些 C 标头包装器 并且想要类似 gccxml 的东西 但不完全依赖 gcc 以及它在 Windows 系统上带来的问题 只需要读C而不是C 只要有完整的文档记录 任何格式的输出都可以 Linux Solari
  • 如何使用 wpf webbrowser 将数据发布到 Web 服务器

    我想从数据库获取数据并使用它来让用户登录到网站 我有一个包含 Web 浏览器控件的 wpf 页面 我有这样的代码 用于将用户登录到用 php 编写的网站
  • 序列化和反序列化 Visual Studio 解决方案文件 - 或以编程方式编辑?

    我想以编程方式添加和删除项目 解决方案文件夹和其他项目 例如解决方案的资源文件 但我不确定最好的方法是什么 对于那些不知道的人 高度简化 解决方案文件 sln 通常如下所示 Microsoft Visual Studio Solution
  • C# datagridview 列转入数组

    我正在用 C 构建一个程序 并在其中包含一个 datagridview 组件 datagridview 有固定数量的列 2 我想将其保存到两个单独的数组中 但行数确实发生了变化 我怎么能这样做呢 假设一个名为 dataGridView1 的
  • 指向字节数组的指针

    由于 Misra C 的要求 我的一位同事想要使用指针声明 但我遇到了一些问题 Misra 安全关键指南 不会让我们纯粹的程序员使用指针 但会让我们对数组字节进行操作 他打算获取一个指向字节数组的指针 因此我们不会在堆栈上传递实际的数组 T
  • 操纵 setter 以避免 null

    通常我们有 public string code get set 如果最终有人将代码设置为 null 我需要避免空引用异常 我尝试这个想法 有什么帮助吗 public string code get set if code null cod
  • 在简单注入器中注册具有多个构造函数和字符串依赖项的类型

    我正在尝试弄清楚如何使用 Simple Injector 我在项目中使用了它 注册简单服务及其组件没有任何问题 但是 当组件具有两个以上实现接口的构造函数时 我想使用依赖注入器 public DAL IDAL private Logger
  • 系统错误 124 - SHFileOperation 的 ERROR_INVALID_LEVEL

    我在使用时遇到问题SHFileOperation SHFileOperation SHFILEOPSTRUCT https stackoverflow com questions 9191415 shfileoperation shfile
  • 允许使用什么类型的内容作为 C 预处理器宏的参数?

    老实说 我很了解 C 编程语言的语法 但对 C 预处理器的语法几乎一无所知 尽管我有时在编程实践中使用它 所以问题来了 假设我们有一个简单的宏 它扩展为空 define macro param 可以放入宏调用构造中的语法有哪些限制 调用宏时
  • 从事务范围调用 WCF 服务方法

    我有这样的代码 using TransactionScope scope TransactionScopeFactory CreateTransactionScope some methodes calls for which scope
  • 错误左值需要作为赋值C++的左操作数

    整个程序基本上只允许用户移动光标 如果用户位于给定的坐标范围 2 2 内 则允许用户键入输入 我刚刚提供了一些我认为足以解决问题的代码 我不知道是什么导致了这个问题 你能解释一下为什么会发生吗 void goToXY int int 创建一
  • 正确使用“extern”关键字

    有一些来源 书籍 在线材料 解释了extern如下 extern int i declaration has extern int i 1 definition specified by the absence of extern 并且有支
  • .NET JIT 编译的代码缓存在哪里?

    NET 程序首先被编译为 MSIL 代码 当它被执行时 JIT编译器会将其编译为本机机器代码 我想知道 这些JIT编译的机器代码存储在哪里 它只存储在进程的地址空间中吗 但由于程序的第二次启动比第一次快得多 我认为即使在执行完成后 该本机代
  • 使用(linq to sql)更新错误

    我有两个表 通过外键 CarrierID 绑定 Carrier CarrierID CarrierName CarrierID 1 CarrierName DHL CarrierID 2 CarrierName Fedex Vendor V
  • 如何使用收益返回和递归获得字母的每个组合?

    我有几个像这样的字符串列表 可能有几十个列表 1 A B C 2 1 2 3 3 D E F 这三个仅作为示例 用户可以从几十个具有不同数量元素的类似列表中进行选择 再举个例子 这对于用户来说也是一个完全有效的选择 25 empty 4 1
  • 相当于 C# 中 Java 的“ByteBuffer.putType()”

    我正在尝试通过从 Java 移植代码来格式化 C 中的字节数组 在 Java 中 使用方法 buf putInt value buf putShort buf putDouble 等等 但我不知道如何将其移植到 C 我尝试过 MemoryS
  • 纯虚函数可能没有内联定义。为什么?

    纯虚函数是那些虚函数并且具有纯说明符 0 第 10 4 条第 2 款C 03 的内容告诉我们什么是抽象类 顺便说一句 如下 注意 函数声明不能 同时提供纯说明符和定义 尾注 示例 struct C virtual void f 0 ill
  • 如何设置 CMake 与 clang 交叉编译 Windows 上的 ARM 嵌入式系统?

    我正在尝试生成 Ninja makefile 以使用 Clang 为 ARM Cortex A5 CPU 交叉编译 C 项目 我为 CMake 创建了一个工具链文件 但似乎存在错误或缺少一些我无法找到的东西 当使用下面的工具链文件调用 CM
  • 为什么某些 Web.config 转换标记化为 SetParameters.xml,而其他则不然?

    我最近在 VS2010 中使用配置转换相当多 但我很困惑为什么有些转换直接应用于包中的 Web config 而其他转换则针对 SetParameters xml 中的令牌存储 然后在发布时应用 例如 采用具有以下连接字符串和应用程序设置的

随机推荐

  • 可选权限,以便应用程序可以在所有设备上显示并在某些设备上启用可选功能?

    Android 中的许多功能都需要在清单中设置使用权限 然后 这些值决定哪些设备将在市场上看到它们 但是 如果该功能是可选的 如果可以使其在许多设备上运行 但只需要少数设备上的许可 该怎么办 举个例子 假设一个应用程序具有多种功能和大量内容
  • 浏览器特定的前缀,在转换时具有 CSS 过渡

    根据 caniuse com 对于同时支持 CSS 的浏览器transition和CSStransform 组合起来至少有三种不同的类型 那些需要 webkit 两者的前缀transition and transform 例如 Safari
  • 使用反应本机元素更改主题不起作用?

    我一直在使用 React Native 元素 我想为我的应用程序实现黑暗模式 但由于某种原因我无法获取主题道具
  • 如何从命令行更新项目中的单个 nuget 包?

    我正在尝试更新具有多个依赖项的 csproj 中的单个包 也就是说 packages config 文件如下所示
  • 如何更改 SQLite 数据库列中的值?

    我有一个具有以下格式的 SQLite 数据库 TABLE users name text avatar text password text userdir text role numeric 我想更改数量role 我怎样才能改变它 我的意
  • IntelliJ 中的 Intellisense 不再工作

    我目前正在运行 IntelliJ IDEA 13 1 运行 IntelliJ 13 时 智能感知 自动完成停止工作 我尝试升级 但仍然不起作用 我可以使用显式调用代码完成ctrl space 我看了进去设置 gt 编辑器 gt 代码完成看起
  • 测试容器;在 docker 内运行 @Testcontainers 测试 [在 Docker 内运行 Docker]

    如何跑步 Testcontainers基于 docker 容器内的测试用例 我有一个简单的 Spring Boot 应用程序 它具有集成测试 组件级别 可以使用以下命令与容器进行交互Testcontainers 测试用例从外部容器 本地机器
  • 处理按键事件时 NSTextField 泄漏

    我是这个论坛的新手 我已经搜索过 但没有找到这个问题的任何答案 这个问题在本周的大部分时间里一直困扰着我 每次按下按键时 NSTextField 都会导致内存泄漏 我已将这个问题从我的代码中分离出来 并且可以按如下方式重现 创建一个新的 C
  • 如何禁用 UIWebview 水平滚动?

    我尝试通过插入来禁用它 到我的 HTML 字符串中 以及上面的十几个变体 徒劳地希望我只是搞砸了标签语法 但似乎没有什么可以阻止 UIWebView 水平滚动 然而 有些应用程序可以做到这一点 例如 MobileRSS 并且可能由于它们没有
  • iOS上删除大文件文件夹的性能

    假设我的 iOS 应用程序的数据目录中有一个文件夹 其中包含数千个小文件 删除此文件夹 通过 NSFileManager removeItemAtPath 需要相当长的时间 但在 OS X 上 删除具有相同内容的文件夹非常快 它似乎只是从文
  • Java 项目的包结构?

    在 Java Web 应用程序中设置包结构的最佳实践是什么 您将如何设置您的 src 单元测试代码等 你可以关注maven的标准项目布局 http maven apache org guides introduction introduct
  • shell中实时去除回车

    对于上下文 我尝试创建一个 shell 脚本来简化 ffmpeg 的实时控制台输出 仅显示正在编码的当前帧 我的最终目标是在某种进度指示器中使用此信息进行批处理 对于那些不熟悉 ffmpeg 输出的人来说 它将编码的视频信息输出到 stdo
  • pandas 对布尔类型应用过滤器

    这些是我的 DataFrame 的类型 count int64 word object cat1 bool cat2 object cat3 bool dtype object 如何对 cat1 和 cat2 中的布尔值进行过滤 就像是 d
  • 如何在 C# 中使用可选参数?

    Note This question was asked at a time when C did not yet support optional parameters i e before C 4 我们正在构建一个从 C 类以编程方式生
  • 如何检索 git 中两次提交之间更改的 maven 模块列表

    我有一个带有主模块和多个子模块的 Maven 项目 我想知道是否有一种简单的方法来检索两次提交之间更改的所有模块 无论如何 在问题提出近三年后 我基于 git diff 的启发式设计 基于 Maven 工件受惯例支配的事实 提取所有文件更改
  • 从 CursorAdapter.get() 返回对象

    我正在重写 CursorAdapter 我需要获取最后一项 问题是 CursorAdapter 实际上有一个 get 方法 但源是一个数据库 它返回一个普通对象 我什至不知道它是什么 我希望它返回一个 Cursor 对象 尽管如此 我怎样才
  • Android studio logcat最大行数

    我正在使用连接到 Android Studio 的真实设备进行测试 由于我不想中断多线程行为 因此我在代码中添加了大量日志语句以了解发生了什么 在 logcat 中 我看到了即将到来的语句 到目前为止一切顺利 运行完整测试后 我发现我的日志
  • 我应该从 MVC 框架中的控制器或模型中调用 redirect() 吗?

    我正在使用 MVC PHP 框架 Codeigniter 并且我有一个直接的问题 即从哪里调用redirect 控制器还是模型 设想 用户导航到 www example com item 555 在我的模型中 我在项目数据库中搜索 ID 为
  • 如何在使用 Moq 的测试中引发事件?

    以下是父类中的部分代码实现 handler FooUpdateDelegate FooUpdate OnFooUpdate protected abstract void OnFooUpdate ref IBoo boo string s
  • 如何在解决方案级别使用 Microsoft.Net.Compilers?

    我想开始使用Microsoft Net Compilers https www nuget org packages Microsoft Net Compilers 简化我们的构建服务器的工作 但是 我只能让它在每个项目级别 https s