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

WPF 程序的编译过程

编译临时程序集时,会生成一个新的项目文件,名字:(项目名)_(随机字符)_wpftmp.csproj,在与原项目相同的目录下。...关于临时生成程序集 在 WPF 的编译过程中,我想单独将临时生成程序集的部分进行特别说明。因为如果你不了解这一部分的细节,可能在未来的使用中遇到一些临时生成程序集相关的坑。...新生成临时项目文件相比于原来的项目文件,包含了这些修改: 添加了第一轮 XAML 编译传递(MarkupCompilePass1)时生成的 .g.cs 文件; 将所有引用方式收集到的引用全部换成 ReferencePath...的情况下,无论是项目引用还是 NuGet引用,都会被换成普通的 dll 引用,因为这个时候目标项目都已经编译完成,包含可以被引用的程序集。...注意,虽然新生成的项目文件中有 PackageReference 来表示包引用,但由于只有 _CompileTargetNameForLocalType 指定的编译目标和相关依赖可以被执行,而 NuGet

38630

jenkins with gitblit and .net framework and windows

AppData\Local\Jenkins\.jenkins,打开config.xml文件,找到${JENKINS_HOME}变量,修改为指定盘符,重启jenkins即可. 3、进入插件管理->高级选项 替换最后一栏...global user.name "用户名" git config --global user.email "邮箱" 设置当前pc的全部用户名和邮箱 ssh-keygen -t rsa -C "邮箱" 本地生成公私密钥对...,生成成功,输出中包含公钥存放地址.如下: ?...pc进行连接测试. (2)、关于如何用win10 进行测试请参考文章 9、新建一个FreeStyle的Item,并进入配置流程 (1)、第一步输入仓库ssh地址 (2)、新增ssh的认证方式,贴入本地私钥...\代码\BaseAsset.root\BaseAsset\ C:\Nuget\nuget.exe restore -PackagesDirectory D:\jenkins\workspace\BaseAsset

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

2018-8-24-快捷调试Nuget

不可行方法 通过添加引用的方式添加本地包 ?...Visual Studio Marketplace 这个工具非常棒,有着全5星好评,大家快去下载 懒人方法 替换nuget缓存 我们知道在vs中的nuget包,从nuget服务器中下载之后会添加到本地...之后每次编译时只需要从nuget缓存中获取现有的dll进行编译。那么我们就可以通过替换nuget缓存目录中的文件实现使用本地dll调试。...实操 我们找到目标nuget库所在的缓存目录,注意版本号要相同哦 ? 将原有的dll改为bak,此时我们发现vs对项目中所有有关于这个库的引用都飘红了,提示需要还原nuget ?...然后你可以在vs中的指定项目右键-打包(需要新格式才能支持),生成一个本地nuget包,放到刚刚的文件夹中 然后在产品项目里指定本地的程序包源,就可以看到你本地nuget包了 ?

91710

制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案)

我们是通过项目中设置了属性 BuildOutputTargetFolder 让生成的文件跑到这里来的,目的是避免安装此 NuGet 包之后,引用了我们生成的 dll 文件。...在那篇博客中,我们解释到新生成的项目文件会使用 ReferencePath 替代其他方式收集到的引用,这就包含项目引用NuGet 包的引用。...在使用 ReferencePath 的情况下,无论是项目引用还是 NuGet引用,都会被换成普通的 dll 引用,因为这个时候目标项目都已经编译完成,包含可以被引用的程序集。...既然我们失去了通过 NuGet 被自动 Import 的时机,那么我们只能另寻它法: 帮助微软修复 NuGet 在 WPF 临时生成的项目中依然可以自动 Import 编译文件 .props 和 .targets...ReferencePathTypeName,传入了字符串常量 ReferencePath,这是为了在生成临时项目文件时使用正确的引用路径项的名称。

41940

手把手教你写 Roslyn 修改编译

Roslyn 如何使用 MSBuild Copy 复制文件 本文告诉大家如何在 MSBuild 里使用 Copy 复制文件 Roslyn 使用 Target 替换占位符方式生成 nuget 打包 本文告诉大家如何编写在编译过程修改打包文件...无论哪个控制台项目都会输出林德熙是逗比 虽然已经通过很多篇博客告诉大家如何通过 Directory.Build.props 文件修改编译的方法,但是本文还是提供一个新的思路 只需要在项目文件夹,或者磁盘的文件夹,...Roslyn 通过 Nuget 引用源代码 在 VS 智能提示正常但是无法编译 本文告诉大家如果在 Nuget 引用源代码的方式引用源代码,在 VisualStudio 的智能提示和 Resharper...的智能提示都能找到对应的类,但是在 VisualStudio 编译或使用命令行 msbuild 编译时提示找不到类 Roslyn 通过 Nuget 管理公司配置 本文来告诉大家如何用 Roslyn 管理配置...,在开一个新的项目的时候经常需要添加公司,版权等,但是这些信息不想每次都添加于是我就想用 Nuget 管理所有配置,安装一个 nuget 就自动配置 Roslyn 如何在 Target 引用 xaml

2.1K20

dotnet 开发的单代码仓库和多代码仓库的优劣

我更改了 A 库,然后我在本地让 B 引用了 A 的我的本地开发路径,我更改了代码,调试完成,然后上传代码?...这样做的坑在于这段代码将只有我才能构建通过,因为小伙伴没有我的本地开发路径 那换个方法,我让 B 引用了 A 的我的本地开发路径,但是我不上传 csproj 文件的更改?...而 commit 构建不通过对于回溯是神坑 于是一个解决方法是在更改 A 之后打包 NuGet 包让 B 引用,这个解决方法有两个坑是谁的 NuGet 包和如何回溯 NuGet 包对应的代码。...通过在本地创建 Tag 号推送服务器,让服务器触发打包,打出来的 NuGet 包对应 Tag 号,此时就能满足让服务器打包以及使用 Tag 关联代码和 NuGet 包版本。...: VS DLL引用替换插件 这个插件能做到将 NuGet 引用替换本地的开发路径,也就是我原先使用了 NuGet 引用了 A 库,我可以利用这个插件将 NuGet 引用替换为 csproj 的本地代码引用

73920

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

默认情况下,我们打包 NuGet 包时,目标项目安装我们的 NuGet 包会引用我们生成的库文件(dll)。除此之外,我们也可以专门做 NuGet 工具包,还可以做 NuGet 源代码包。...-- 当生成 WPF 临时项目时,不会自动 Import NuGet 中的 props 和 targets 文件,这使得在临时项目中你现在看到的整个文件都不会参与编译。...-- 修复旧版本的 Microsoft.NET.Sdk 中,WPF 项目不支持在临时项目中通过 NuGet生成源代码的问题。...-- 当生成 WPF 临时项目时,不会自动 Import NuGet 中的 props 和 targets 文件,这使得在临时项目中你现在看到的整个文件都不会参与编译。...-- 当生成 WPF 临时项目时,不会自动 Import NuGet 中的 props 和 targets 文件,这使得在临时项目中你现在看到的整个文件都不会参与编译。

67320

Roslyn 通过 nuget 统一管理信息

最近我多发布了一些项目,但是发布一个项目需要在 nuget 添加的信息有很多, authors 、 owners 、 Company 、 Copyright 而本渣很容易就忘记添加了一些值。...如果可以看到这个界面就是成功创建了,当然引用 林德熙逗比 包是不可能的,但是如果是按照我上面的方法写的话是不会看到引用的。...lindexi.targets 可以看到 targets 只是空白的文件 现在重新压缩一下,修改后缀名 注意压缩需要将文件包含在根目录,也就是不能包一个文件夹再放文件 安装本地包...在添加的下面写出本地打包的文件,也就是 lindexi.1.0.0.nupkg 文件所在的文件夹和随意的一个命名 ? 记得点击更新保存,然后再选择刚才设置的文件夹 ?...如果需要替换某个信息,例如修改 Description 的信息,就可以通过右击修改项目文件添加 Description 的设置就替换了默认的值。

60220

Roslyn 通过 nuget 统一管理信息

最近我多发布了一些项目,但是发布一个项目需要在 nuget 添加的信息有很多, authors 、 owners 、 Company 、 Copyright 而本渣很容易就忘记添加了一些值。...打开文件可以看到下面界面 如果可以看到这个界面就是成功创建了,当然引用 林德熙逗比 包是不可能的,但是如果是按照我上面的方法写的话是不会看到引用的。...lindexi.targets 可以看到 targets 只是空白的文件 现在重新压缩一下,修改后缀名 注意压缩需要将文件包含在根目录,也就是不能包一个文件夹再放文件 安装本地包...做出来 nuget 需要安装在一个项目,下面先创建一个控制台的项目,在这个项目设置 nuget 安装 右击项目nuget点击设置,然后点击添加 在添加的下面写出本地打包的文件,也就是 lindexi...,而且里面的信息就是刚才设置的信息 如果需要替换某个信息,例如修改 Description 的信息,就可以通过右击修改项目文件添加 Description 的设置就替换了默认的值。

23910

如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包

制作这样的一个跨平台 NuGet 工具,我们能够为安装此工具的项目提供自动的但定制化的编译细节——例如自动生成版本号,自动生成某些中间文件等。...所以请将所有的 NuGet 包资产都声明成私有的,方法是在 NuGet 包的引用后面加上 PrivateAssets="All"。...第二步:组织 NuGet 目录 刚刚生成NuGet 包还不能真正拿来用。事实上你也可以拿去安装,不过最终的效果只是加了一个毫无作用的引用程序集而已(顺便还带来一堆垃圾的间接引用)。...如果你要在编译期间替换一个类而不是新增一个类,例如将 Class1.cs 更换成新类,那么需要将其从编译列表中移除: <!...本地测试 NuGet 包 在发布 NuGet 包之前,我们可以先在本地安装测试。

1.4K10

MSBuildRoslyn 和 NuGet 的 100 个坑

这种情况,唯一的办法就是把那个不再可用的源从配置中删除,或者临时禁用掉出问题的源。...其实这是只有新的项目文件才会出现的编译错误,而错误原因是 NuGet 的缓存文件中与包引用相关的信息已经不正确了,需要运行 nuget restore 或者 dotnet restore 重新更新此文件才行...但是,只有使用了 Sdk 风格的 csproj 文件才会在执行了此命令后重新生成正确的包引用缓存文件;原来的格式并不会生成此文件,也就是说,无法修复。...依赖的项目会自动转为依赖的 NuGet 包 如果你给一个项目 A 打 NuGet 包,但这个项目引用此解决方案中的另一个项目 B。那么这时打包,NuGet 会认为 A 包依赖于 B 包。...后会重新生成

32830

MSBuildRoslyn 和 NuGet 的 100 个坑

这种情况,唯一的办法就是把那个不再可用的源从配置中删除,或者临时禁用掉出问题的源。...其实这是只有新的项目文件才会出现的编译错误,而错误原因是 NuGet 的缓存文件中与包引用相关的信息已经不正确了,需要运行 nuget restore 或者 dotnet restore 重新更新此文件才行...但是,只有使用了 Microsoft.NET.Sdk 的新 csproj 文件才会在执行了此命令后重新生成正确的包引用缓存文件;原来的格式并不会生成此文件,也就是说,无法修复。...依赖的项目会自动转为依赖的 NuGet 包 如果你给一个项目 A 打 NuGet 包,但这个项目引用此解决方案中的另一个项目 B。那么这时打包,NuGet 会认为 A 包依赖于 B 包。...文件;其中 .nuget.g.props 和 .nuget.g.targets 中生成了 Import 包中编译相关文件的代码。

1.3K20

.NET Core系列 : 2 、project.json 这葫芦里卖的什么药

它可标识项目引用、版本选项(版本号)等事项,并可标识要编译的平台,例如,是 .NET Core 还是 .NET Framework。...此文件旨在: 替换 NuGet 文件管理器 package.config 文件,它可标识项目的 NuGet 引用。 指定项目支持的框架,以及有关如何为特定框架构建项目的配置详细信息。...project.json.lock  Project.json.lock 存储编译所需文件的列表(通常为 NuGet 引用)。...Project.json.lock 包括包图片以及本地下载的其他与包相关的数据(已还原)。...现在,想像你如果为此框架引用 NuGet 包,但有时怀疑可能存在需要修复的缺陷或可能存在一个批准的增强功能。通常,这需要独立于项目/解决方案处理组件中的源代码。

2K80

SourceYard 制作源代码包 控制台项目WPF 程序调试

如果对 SourceYard 感兴趣,请在 github 关注 右击 TheLib 的属性,在打包的页面勾选在版本中生成 Nuget 包,勾选之后重新编译就可以制作出 Nuget 包。...右击项目管理 Nuget 引用本地Nuget 文件的文件夹,如我这里的 Nuget 文件是在 D:\lindexi\SourceYard\bin\Debug 文件夹下,我就需要添加这样的路径,请看图片...,刚才命名为 TacaluTawnenai 的源就可以找到刚才的两个文件,如何选择本地的源?...,通过本地的文件夹安装 Nuget 包和通过 Nuget 服务器安装没有不同,如果需要自己搭建 Nuget 服务器也是十分简单,请看通过ProGet搭建一个内部的Nuget服务器 - 张善友 - 博客园我就帮小伙伴在...,很难在 dll 里面添加断点,同时在调试的时候修改代码 但是在使用 SourceYard 调试的时候,安装 Nuget 的库和调试本地引用的代码是完全一样的,就使用上面的控制台调试 例如需要无论用户输出的是什么返回的都是

1.1K20

程序猿修养 使用 NuGet 发射卫星只需要三步

有很多功能,其实只需要知道用哪个库和如何用,底层细节可以在完全不知道不了解的情况下也能用起来 回到上篇博客最后的问题,我想要写一个软件,用来发射卫星,请问需要几步?...其实不然,最简单的矩阵转换,我只需要知道调用哪个函数就会发生什么,而不是去了解什么是矩阵,矩阵的转换的最优算法是什么,如何写,有哪些边界。...请让咱来个简单一点的东西,在开始之前需要了解什么是 NuGet 工具。其实 NuGet 就是一个用来存放库的东西,这里的 库 指的是小伙伴编写上传的封装好的东西。可以引用库来做很多有趣的事情。...而 NuGet 分为两部分,一部分在云上面,就是上面所说的用来存放库的功能。另一部分放在本地用来安装和管理项目里面用到的库 如果小伙伴遇到一个功能不知道如何实现,在网上是期望找到源代码复制粘贴好呢?...其实我比较推荐后面一个方法 在安装完成了 dotnet 工具之后,可以方便使用 NuGet本地的一个项目里面安装神奇的库,我想要读取一个PPT文件里面的所有页面的所有文本将这些文本输出,此时我可以如何做

48120

.NET Core 系列5 :使用 Nuget打包类库

已经成为.NET 生态系统中不可或缺的一个组件,从项目角度,将项目中各种组件的引用统统交给NuGet,添加组件/删除组件/以及更新组件即可一键完成,大大提升工作效率,减少不必要的引用报错。...] [--version-suffix] [] 描述 dotnet pack 命令生成项目并创建 NuGet 包。...该项目被依赖的 NuGet 包装被添加到 nuspec 文件,因此,他们能够在安装包时得到解决。 默认情况下,项目到项目之间的引用是不打包到项目中的。...如果你想那样做,你需要在你的依赖中引用需要项目的 type 节点设置为 “build” ,设置就像下面的例子: { "version": "1.0.0-*", "dependencies...-o, --output [DIR] 指定生成的目录。 --no-build 打包进程中跳过生成阶段。 --build-base-path 指定临时生成产物的目录。

1.4K50

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

自动打包上传 nuget 文件 本文将在此基础上实现本地推送一个 Tag 到 GitHub 服务器上,就会触发 GitHub 的 Action 的自动构建,自动构建的 NuGet 包的版本就是 Tag...} } -NoSymbols 注意上面的代码花括号的中间是不能带空格的,只是因为博客生成平台不支持连续两个花括号 ?...而开发者最多也就是改版本号做本地打包 此时的项目如果在 csproj 文件没有指定版本号,那么就将会读取版本号文件的版本。...DLL引用替换插件 当前 Gitlab 上也可以使用此方法,请看 dotnet 配合 Gitlab 做自动推 Tag 时打包 NuGet 包 另外我开源了一个构建工具集,请看 dotnetcampus.DotNETBuildSDK...本文的方法依然适用构建应用,构建 WPF 应用,或打包为 UWP 应用。

96420
领券