首页
学习
活动
专区
圈层
工具
发布

Roslyn 使用 Directory.Build.props 管理多个项目配置

在之前,我每次发布的时候,我都需要修改三个不同的仓库的版本号,将几个版本号升级到最新,但是这个方法如大家所见,效率是很低的。...在看到我之前的博客 Roslyn 使用 Directory.Build.props 文件定义编译 可以知道,通过 Directory.Build.props 文件可以修改配置。...-- 是否在每次重新编译的时候创建 nuget 包 --> true 中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) - walterlv 更多关于 Roslyn 请看 手把手教你写 Roslyn 修改编译 参见:Roslyn 入门 - CSDN...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://lindexi.gitee.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。

83210

CoreHook:基于.NET Core运行时实现的Windows HOOK库

; 3.支持插件库的NuGet包引用; 4.支持插件的多种架构; 有关更多信息,请参阅wiki。...全局配置 要使用全局配置,请首先dotnet.runtimeconfig.json使用上述内容创建一个文件并将其保存到文件夹中。这将是项目用于初始化目标进程中的运行时的全局配置文件。...您可以使用download-deps脚本,该脚本将最新的二进制版本下载到deps项目根目录中调用的文件夹中。...Windows符号支持 CoreHook支持从PDB查找符号名称以获取使用的函数地址LocalHook.GetProcAddress。...您可以将这些文件添加到目标程序的目录中,也可以将它们添加到路径中。您可以通过安装 Windows调试工具来获取这两个DLL 。 您可以找到dbghelp.dll和的示例位置symsrv.dll: 1.

2.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MSBuildRoslyn 和 NuGet 的 100 个坑

    100 个坑 不可用的源 NuGet 可以指定多个包源。既可以在 Visual Studio 中配置,也可以在配置文件中配置。 将 WPF、UWP 以及其他各种类型的旧 csproj 迁移成 Sdk 风格的 csproj 一文讲述了如何为项目文件添加 Sdk 属性,以便项目能够体验到最新的 Microsoft.NET.Sdk 编译体验...其实这是只有新的项目文件才会出现的编译错误,而错误原因是 NuGet 的缓存文件中与包引用相关的信息已经不正确了,需要运行 nuget restore 或者 dotnet restore 重新更新此文件才行...但是,只有使用了 Sdk 风格的 csproj 文件才会在执行了此命令后重新生成正确的包引用缓存文件;原来的格式并不会生成此文件,也就是说,无法修复。...依赖的项目会自动转为依赖的 NuGet 包 如果你给一个项目 A 打 NuGet 包,但这个项目引用此解决方案中的另一个项目 B。那么这时打包,NuGet 会认为 A 包依赖于 B 包。

    1K30

    从零开始制作 NuGet 源代码包(全面支持 .NET Core .NET Framework WPF 项目)

    -- 将 Package.props / Package.targets 文件的名称在 NuGet 包中改为需要的真正名称。...可以注意到我们几乎没有任何实质性的代码在里面。即便我们在此文件中还没有写任何代码,依然需要创建这个文件,因为后面第五步我们将添加更复杂的代码时将再次用到这个文件完成里面的内容。...即 NuGet 包中的源代码目录 另外,我们添加了一个 Message 任务,用于在编译期间显示一条信息,这对于调试来说非常方便。...注意到我没有直接将 NuGet 包中的源代码文件引入到 Compile 集合中,而是经过了中转。后面第五步中,你将体会到这样做的作用。...-- 将 Package.props / Package.targets 文件的名称在 NuGet 包中改为需要的真正名称。

    1.9K20

    win10 uwp 使用 msbuild 命令行编译 UWP 程序

    盘符: 的方式 cmd> D: 这样就可以跳转到 D 盘,在进入指定的文件夹,可以输入 cd 文件夹 的方式 如果自己输入很容易就输入错误,推荐输入 cd 然后在资源管理器打开文件夹,将地址栏的文件夹拖进命令行...,也就是当前的工作文件夹不在指定的项目文件夹,可以在 msbuild 后面添加解决方案的路径。...Nuget 包 msbuild /t:restore // 带路径 msbuild "E:\lindexi\UWP\Foo.sln" /t:restore 重新编译 msbuild "D:\lindexi...的清理,只是防止有逗比上传了 obj 文件夹 msbuild /t:restore 欢迎 nuget 包,注意添加自己的 nuget 网站,如果自己用了内部的 nuget 就需要自己添加 msbuild...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://lindexi.gitee.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。

    1.6K20

    WPF 使用 Win2d 渲染

    需要 VisualStudio 2017 和以上,点击Visual Studio下载链接下载最新的工具 需要在 VisualStudio 的开发添加 UWP 和桌面开发 需要在设备安装 .NET Framework...Microsoft.VCRTForwarders.140 System.Numerics.Vectors Win2D.uwp 如果有安装不上的,例如有下面提示 无法安装程序包“Win2D.uwp 1.23.0....nuget\packages\microsoft.vcrtforwarders.140\1.0.0-rc\runtimes\win10-x64\native\release\ 文件,将里面的文件复制到输出文件夹...打开 c:\Users\lindexi.github.io\.nuget\packages\win2d.uwp\1.22.0\runtimes\win10-x64\native\ 将 Microsoft.Graphics.Canvas.dll...文件复制到输出文件夹 请将上面文件夹的用户名替换为你自己的用户名 当然这样的呆魔大家一定不想使用,于是我将需要添加的文件放在项目文件,设置自动输出,请小伙伴换我的项目试试 我将代码放在 Github

    1.3K20

    教你自制.NET Core Global Tools

    啥是 Global Tools .NET Core Global Tools 是一种特殊的nuget包,内容就是一个控制台应用程序。...在异教徒的世界里,程序员可以通过pip3、npm来安装命令行工具使用,而微软的世界里有nuget,它是分发命令行工具的绝佳平台。 为啥不用 UWP?...首先,UWP 只能在 Windows 平台运行,其次,UWP目前并不支持所有 .NET Core 的 API,最后,平台的限制、商店和系统的 Bug、Runtime 和 SDK 的药丸…… 关于这个,可能只有一张图能解释.../nupkg 其中,azureblobsync 表示最终用户要启动你的程序得在cmd里输入的命令,./nupkg 是最终生成nuget包的文件夹路径。...打包 NuGet 在工程根目录运行 nuget pack ? 这会在 ./nupkg 目录下生成一个 Debug 编译的nuget包,用于本地开发调试。

    79430

    MSBuildRoslyn 和 NuGet 的 100 个坑

    100 个坑 不可用的源 NuGet 可以指定多个包源。既可以在 Visual Studio 中配置,也可以在配置文件中配置。 ? ? 将 WPF、UWP 以及其他各种类型的旧 csproj 迁移成基于 Microsoft.NET.Sdk 的新 csproj 一文讲述了如何为项目文件添加 Sdk 属性,以便项目能够体验到最新的 Microsoft.NET.Sdk...其实这是只有新的项目文件才会出现的编译错误,而错误原因是 NuGet 的缓存文件中与包引用相关的信息已经不正确了,需要运行 nuget restore 或者 dotnet restore 重新更新此文件才行...但是,只有使用了 Microsoft.NET.Sdk 的新 csproj 文件才会在执行了此命令后重新生成正确的包引用缓存文件;原来的格式并不会生成此文件,也就是说,无法修复。...依赖的项目会自动转为依赖的 NuGet 包 如果你给一个项目 A 打 NuGet 包,但这个项目引用此解决方案中的另一个项目 B。那么这时打包,NuGet 会认为 A 包依赖于 B 包。

    1.7K20

    将 WPF、UWP 以及其他各种类型的旧 csproj 迁移成基于 Microsoft.NET.Sdk 的新 csproj

    从对比中我们就能明显看出新 csproj 文件的优势: 文件小,易读易写 在版本管理中更容易解冲突 NuGet 包的引用没有路径要求,这意味着开发者可以任意指定 NuGet 包的位置 嵌套的引用不需要重复指定...第三步:安装此前已经安装好的 NuGet 包,或者把原来的 packages.config 文件里的 NuGet 配置复制到 csproj 文件中,并统一修改格式: 从 <package id="MSTest.TestAdapter...自动迁移 自动迁移的方法我写了一篇新的博客,请阅读 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference。...其实这是只有新的项目文件才会出现的编译错误,而错误原因是 NuGet 的缓存文件中与包引用相关的信息已经不正确了,需要运行 nuget restore 或者 dotnet restore 重新更新此文件才行...唯一的解决办法就是清除项目中的所有 NuGet 缓存,使用 git clean -xdf。 迁移之后的劣势 迁移成新的 csproj 格式之后,新格式中不支持的配置会丢失。

    2.1K20

    VisualStudio 使用新项目格式快速打出 Nuget 包

    > 还需要自己添加需要打包的文件,或者通过 nuget 的命令自动编译打包,看起来很麻烦 下面就是我写出来的制作一个 lindexi 的包 uwp 如何打包Nuget给其他人 而使用 VisualStudio 新项目格式打出 Nuget 包的方法很简单,首先是创建一个 dotnet core 项目,使用这个项目演示...如果想要自己定义一个 nuget 包的 id 和 AssemblyName 不相同,可以通过修改 PackageId 的方式,具体请看项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet...那么如何验证打出来的包是可以使用的?做法很简单,就是使用 Nuget 安装本地的包的方式 右击项目管理 Nuget 包 ? 点击设置 ? 点击添加一个本地的包,修改输出包的文件夹 ? 切换本地包 ?...点击刚才创建的包 ? 这时就可以看到刚才快速创建的包 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) - walterlv 课件 ?

    88620

    如何通过命令行 msbuild 编译项目

    需要先通过 cd 将命令行的工作路径修改为当前需要编译的路径,通过下面命令可以从 C 盘到代码文件夹 > cd /d 代码所在文件夹 ?...对于一个新的仓库,首先需要还原所有安装的 Nuget 包,此时建议将 Nuget 这个程序加入到环境变量,可以从 官网 下载最新版本的 Nuget 程序,如我下载了 5.0 的版本,我将下载的 Nuget...程序放在了 D:\lindexi\ 文件夹,将 Nuget 下载的程序修改文件名是 Nuget.exe 然后将 D:\lindexi\nuget.exe 加入到环境变量 在 Windows 将某个文件夹加入到环境变量的方法是右击此电脑属性...(如果现在还有开发者使用的是 Windows7 那么请自己百度如何将某个文件夹添加到环境变量)点击高级系统设置 在系统属性页面点击高级,找到环境变量按钮 ?...在最后一行空白的地方双击一下,输入需要添加到环境变量的文件夹,如我上面的 D:\lindexi 文件夹 添加完成之后如果想要命令行生效,需要先将命令行关闭,再重新打开,进入需要编译的文件夹 通过 Nuget

    8K20

    win10 uwp 使用 msbuild 命令行编译 UWP 程序

    本文告诉大家如何使用 msbuild 命令行编译一个 UWP 程序 在有一些时候,如使用持续集成的时候就不能通过 VisualStudio 的方式编译 UWP 程序,需要使用命令行的方式编译。...盘符: 的方式 cmd> D: 这样就可以跳转到 D 盘,在进入指定的文件夹,可以输入 cd 文件夹 的方式 如果自己输入很容易就输入错误,推荐输入 cd 然后在资源管理器打开文件夹,将地址栏的文件夹拖进命令行...,也就是当前的工作文件夹不在指定的项目文件夹,可以在 msbuild 后面添加解决方案的路径。...Nuget 包 msbuild /t:restore // 带路径 msbuild "E:\lindexi\UWP\Foo.sln" /t:restore 重新编译 msbuild "D:\lindexi...的清理,只是防止有逗比上传了 obj 文件夹 msbuild /t:restore 欢迎 nuget 包,注意添加自己的 nuget 网站,如果自己用了内部的 nuget 就需要自己添加 msbuild

    1.2K20

    自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference

    更新于 2018-06-29 08:52 在前段时间我写了一篇迁移 csproj 格式的博客 将 WPF、UWP 以及其他各种类型的旧 csproj...具体有哪些好处,可以阅读 将 WPF、UWP 以及其他各种类型的旧 csproj 迁移成基于 Microsoft.NET.Sdk 的新 csproj。...当然,没有这些功能是因为“不需要”,而不是“还没支持”;所以大部分的迁移都不会发生问题(除非发布包使用的是特别老旧的 nuget.exe,或者发布者利用了一些丧心病狂的黑科技)。...install.ps1 的存在是因为 packages.config 不支持 PackageReference 中的一些新特性(例如 NuGet 包中新的目录结构,例如包中自带的 msbuild targets...lib 根目录中的程序集将被忽略 lib 文件夹内的程序集都应该按照目标框架建立子文件夹,例如 net45、netstandard2.0、netcoreapp2.0。

    2.2K20

    无需安装 VS2019,在 Visual Studio 2022 中编译 .NET Framework 4.543.5 这样的古老框架

    因此,我们将通过安装此 NuGet 包来解决 Visual Studio 2022 中目标包的缺失问题。 正常你只需要在项目中安装这个 NuGet 包即可。...不支持同一个文件夹下有两个 csproj 项目的情况 有时候为了方便,当两个项目几乎所有文件都相同,只是项目配置不同时,我们会考虑将这两个项目放到同一个文件夹里面以共用文件。...详见:使用链接共享 Visual Studio 中的代码文件 另外,这里的 %(RecursiveDir) 是递归显示文件夹(否则所有文件会拍平到项目里),%(Filename) 是将链接显示成文件名,...我个人建议还是迁移一下比较好,不难而且完全兼容旧格式的所有功能。迁移教程:将 WPF、UWP 以及其他各种类型的旧 csproj 迁移成 Sdk 风格的 csproj。...划重点,你需要确保那个文件夹里面包含我们从 NuGet 包里解压出来的 .NETFramework 完整文件夹。

    3.9K30

    杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus .NET Core Mono Win32 Linux ……)

    --self-contained true 拆包 我们去 nuget.org 上下载下来 System.Drawing.Common 包拆开来看,会发现这个包有两个很关键的文件夹: lib runtimes...文件,是个空的文件,仅用来告诉 NuGet 这个包支持这些框架安装,但不引用任何 dll。...另外,NuGet 包的 runtimes 文件夹里面包含了前面我们说到的 win 和 unix 不同实现版本的 System.Drawing.Common.dll。...然而 Unity 不能原生支持 NuGet 包,而 System.Drawing.Common 包要能够在编译时自动选择正确的 dll 去引用,是需要 3.4 版本以上的 NuGet 程序来支持的。...如果不能完全实现此版本 NuGet 的功能,那么编译时是无法将正确的 dll 拷贝到输出目录的。不幸的是,目前流行于 Unity 的第三方 NuGet 管理器不能正确拷贝此包的 dll 到输出目录。

    3.7K60

    dotnet 配合 GitHub 的 Action 做自动推 Tag 时打包 NuGet 包

    此时遇到的问题是,如何在 GitHub 上执行打包,打包的时候如何指定 NuGet 包的版本号。...因为 CBB 的特殊性,我要求每个 NuGet 正式发布的包都应该有一个对应的 Tag 号,这样将 NuGet 库安装到项目里面,之后发现问题了还能找到对应版本的代码 在阅读本文之前,期望小伙伴能了解如何在...} } -NoSymbols 注意上面的代码花括号的中间是不能带空格的,只是因为博客生成平台不支持连续两个花括号 ?...核心的代码是设置 Version.props 的路径,放在build文件夹里面 在 Version.props 文件添加下面代码 NuGet 包的时候需要记得添加 Tag 号 在调试对应版本的 NuGet 的代码的时候,我推荐使用以下方法 Roslyn 让 VisualStudio 急速调试底层库方法 VS

    1.3K20

    New UWP Community Toolkit

    开发者可以通过 VS Package Management 来安装 UWP Community Toolkit NuGet 包,输入“Microsoft.Toolkit”会列出一个集合,下面是摘自官方的...NuGet 包集合和描述,大家根据需求选择使用哪几个包: NuGet Package Name Description Microsoft.Toolkit .NET Standard NuGet package...Staggered panel Namespace: Microsoft.Toolkit.Uwp.UI.Controls Staggered panel 允许分列列表中的元素被自动添加到当前占用空间最小的那一列...UWP 中做了完整的支持,可以自定义 markdown 解析器和渲染,保证流畅的 UI 体验,即使是在低配置的硬件上使用复杂的 markdown 规则。...收到通知时,将在任务栏中动态显示发件人的联系人图片并且将播放声音,这表示“我的人脉”通知正在启动。

    2.1K110

    【实验手册】使用Visual Studio Code 开发.NET Core应用程序

    ... 15 任务3:向项目添加项目引用... 16 任务4:将NuGet包添加到项目或更新它... 17 概述 开源和跨平台开发是Microsoft 的当前和将来至关重要的策略。....一、 我们先在我们的电脑硬盘的新建一个文件夹。我把这个地方选在D:\WorkTest下,创建的文件夹名称为HelloWorld。...十、 下面我们演示给项目添加一个Nuget包 利用我们前面安装的VS code 的Nuget 包扩展插件,我们选中HelloWorld.Web 项目,使用UI菜单查看- 命令面板: ?...0 个警告 0 个错误 任务4:将NuGet包添加到项目或更新它 假设我们要将NuGet包添加到我们的一个项目中,我们可以使用该add package命令来执行此操作。...或者,我们可以使用版本参数指定要安装的版本: dotnet add package shouldly -v 2.8.3 更新NuGet包 将NuGet软件包更新到最新版本也是一样简单,只需使用相同的命令而不使用版本参数

    4.9K90

    从以前的项目格式迁移到 VS2017 新项目格式 必须删除必须修改添加文件项目引用引用包删除多余文件输入注释多个框架使用条件判断迁移 WPF 项目

    如果想迁移 WPF 或 UWP 请看 将 WPF、UWP 以及其他各种类型的旧样式的 csproj 文件迁移成新样式的 csproj 文件 - walterlv 现在很多项目,测试项目都使用新格式,建议在测试项目试试...现在新的格式可以使用通配添加文件,例如在文件夹的所有的代码都需要添加,可以使用这个方式 默认是下面代码 引用包 之前的 Nuget 引用需要添加 packages.config 和 csproj 才可以使用,现在的 Nuget 4 可以直接在...现在对于 UWP 项目,使用上面的方法是编译不通过。如果需要支持 UWP 的 VisualStudio 2017 项目格式,请看 新 csproj 对 WPF/UWP 支持不太好?...dotnet 4.7 和 UWP 项目 参见:Old csproj to new csproj: Visual Studio 2017 upgrade guide 将 WPF、UWP 以及其他各种类型的旧样式的

    4.6K20
    领券