首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

#msbuild

MSBuild/Roslyn 和 NuGet 的 100 个坑

walterlv

MSBuild 不愧是强大的编译器,它提供的扩展机制让你几乎可以编译任何类型的文件或项目;Roslyn 是全新编写的一套编译器,不过它保留了 MSBuild 的...

27730

编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码

walterlv

我之前的博客中有介绍如何在项目中生成额外的代码,也有介绍制作一个生成代码的 NuGet 包。而本文是在此基础上更进一步,可以让生成代码变成实时的;更准确的说,是...

30310

在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件

walterlv

.NET 扩展编译用的文件有 .props 文件和 .targets 文件。不给我选择还好,给了我选择之后我应该使用哪个文件来编写扩展编译的代码呢?

16920

使用 MSBuild Target 复制文件的时候如何保持文件夹结构不变

walterlv

使用 MSBuild 中的 Copy 这个编译目标可以在 .NET 项目编译期间复制一些文件。不过使用默认的参数复制的时候文件夹结构会丢失,所有的文件会保留在同...

17330

如何在 MSBuild 中正确使用 % 来引用每一个项(Item)中的元数据

walterlv

MSBuild 中写在 <ItemGroup /> 中的每一项是一个 Item,Item 除了可以使用 Include/Update/Remove 来增删之外,...

23210

在 MSBuild 编译过程中操作文件和文件夹(检查存在/创建文件夹/读写文件/移动文件/复制文件/删除文件夹)

walterlv

本文整理 MSBuild 在编译过程中对文件和文件夹处理的各种自带的编译任务(Task)。

25720

为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题

walterlv

使用 nuget restore 命令还原项目的 NuGet 包的时候,NuGet 会尝试自动检测计算机上已经安装的 MSBuild。不过,如果你同时安装了 V...

26440

MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译

walterlv

我们这里说的编译任务是 MSBuild 的 Target。虽然只有少部分,但确实有一些情况需要判断是否在 Visual Studio 中编译的时候才需要执行的编...

18530

.NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?

walterlv

在为 .NET 项目扩展 MSBuild 编译而编写编译目标(Target)时,我们会遇到用于扩展编译目标用的属性 BeforeTargets AfterTar...

25620

.NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?

walterlv

在扩展 MSBuild 编译的时候,我们一般的处理的路径都是临时路径或者输出路径,那么发布路径在哪里呢?

15320

Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹

walterlv

大家在进行各种开发的时候,往往都不是写一个单纯项目就完了的,通常都会有一个解决方案,里面包含了多个项目甚至是大量的项目。我们经常会考虑输出一些文件或者处理一些文...

18440

在 Roslyn/MSBuild 中进行基本的数学运算

walterlv

在任何一种编程语言中,做基本的数学运算都是非常容易的事情。不过,不知道 .NET 项目的项目文件 csproj 文件中进行数学运算就不像一般的编程语言那样直观了...

12730

Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠

walterlv

本文介绍如何在项目文件 csproj,或者 MSBuild 的其他文件(props、targets)中处理路径中的斜杠与反斜杠。

19840

在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性

walterlv

充分利用 MSBuild 自带的方法,可以在编译期间完成大多数常见的属性转换,而不再需要自己专门写库来完成。

13910

如何在 MSBuild 的项目文件 csproj 中获取绝对路径

walterlv

通常我们能够在 csproj 文件中仅仅使用相对路径就完成大多数的编译任务。但是有些外部命令的执行需要用到绝对路径,或者对此外部工具来说,相对路径具有不同的含义...

18530

MSBuild 如何编写带条件的属性、集合和任务 Condition?

walterlv

在项目文件 csproj 中,通过编写带条件的属性(PropertyGroup)、集合(ItemGroup)和任务(Target)可以完成更加复杂的项目文件的功...

23930

在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性

walterlv

在编写项目文件或者 MSBuild Target 文件的时候,我们经常会使用 <Foo Include="Identity" /> 来定义集合中的一项。在定义的...

18250

MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义

walterlv

在 MSBuild 中有一些特殊字符,如 $ @ % ' 等,本文介绍他们的含义,如何使用他们,以及你真的需要这些字符的时候如何编写他们。

29320

csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的?

walterlv

当我们在传统格式的 csproj 项目文件中安装 NuGet 包后,有时会在项目文件中发现空的 NuGetPackageImportStamp 节点。这个空的节...

20720

Msbuild编译.Net应用程序入门

宿春磊Charles

Msbuild是微软的开源编译器,它实际上是封装了底层的C++编译器Cl.exe和链接器link.exe,以及上层的.Net框架库的引导。

24720
领券