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

用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查

本文基于前一篇文章已经建好的项目继续: 用 WiX 制作安装包:创建一个简单的 msi 安装包 添加 WixNetFxExtension 引用 msi 安装包项目的“Reference”右键,“添加引用...虽然我们前面选择的 C:\Program Files (x86)\WiX Toolset v3.11\bin 看起来是个绝对路径,但实际 wixproj 项目里记录的是一个属性引用,因此可以很容易团队成员之间共享和跨版本迁移...[CDATA[ 和 ]]> 包裹起来了,避免判断条件中出现了一些会破坏 XML 语法的字符(如 等)出现导致意外的问题(但实际本例中,我们只用了字母和下划线,所以你也可以直接写 WIX_IS_NETFRAMEWORK...整理成下表,方便大家根据自己的需要查阅: .NET Framework 版本 对应判断属性 4.8 WIX_IS_NETFRAMEWORK_48_OR_LATER_INSTALLED 4.7.2 WIX_IS_NETFRAMEWORK...下图是魔改了 DEMO 后 Windows 11 的截图(放上来就是为了平衡美感的): 不过为了真实性,还是找了台 Windows 7 纯净系统来测试: 如果点击“OK”,安装程序将直接退出

50630

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

---- 源代码包 源代码包不是 NuGet 官方的概念,而是林德熙和我 GitHub 做的一个项目,目的是将你的项目以源代码的形式发布成 NuGet 包。...安装此 NuGet 包后,目标项目将获得这些源代码。 你可以通过以下博客了解如何制作一个源代码包。...写了一篇讲解 WPF 编译过程的博客,解决这个问题之前,建议阅读这篇博客了解 WPF 是如何进行编译的: WPF 程序的编译过程 了解了 WPF 程序的编译过程之后,我们知道了前面一些疑问的答案:...使用 ReferencePath 的情况下,无论是项目引用还是 NuGet 包引用,都会被换成普通的 dll 引用,因为这个时候目标项目都已经编译完成,包含可以引用的程序集。...Import 我们 NuGet 包中的编译文件,但这些不如以上方案来得靠谱,因为上面的代码可以使得项目文件的修改完全确定,不用随着开发计算机的不同或者 NuGet 包的数量和版本不同而变化。

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

WPF 程序的编译过程

CLR 类型的;如果 XAML 所引用的 CLR 类型在其他被引用的程序集,那么编译 XAML 的时候就可以直接引用这些程序集,因为他们已经编译好了。...这样, MarkupCompilePass2 执行的时候,会获得一个包含原本统一程序集的 CLR 类型的临时程序集引用,这样就可以继续完成 XAML 格式的编译了。...关于引用换成 ReferencePath 的内容,可以阅读的另一篇博客了解更多: Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 使用 ReferencePath...的情况下,无论是项目引用还是 NuGet 包引用,都会被换成普通的 dll 引用,因为这个时候目标项目都已经编译完成,包含可以引用的程序集。...本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

35530

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

---- 无法编译 .NET Framework 4.5 项目 为了更广泛的适用于各种项目,的一些库兼容的框架版本是非常古老的(比如下图截取的这张)。...不过考虑到大家基本都是用 Visual Studio 来开发,所以上述操作 VS 中的水土不服也需要特别处理一下。...于是这种方式安装的 NuGet 包不像其他的 NuGet 包那样可以传递到其他引用它的项目。...如果不想迁移,也可以试试官方的方法。但我不想尝试,所以就在线等 TA 评论区的回复吧! 4. 不想折腾之一:还是装回 VS2019 吧 有时候,你可能会遇到各种意料之外的问题,超出上面列举的坑。...版本的 .NET Framework 引用包。

63130

​monosys as 1ddlang语言选型+1ddcodebase实践选型绿色monodevelope集成常见多语言

再确定要找的mono版本,网上难找到.net与mono的版本对应关系了,这个也要最好最低兼容.net4.0的,最初选择的是Mono 2.10.8(相当于NET with asp.net 4.0?)...为了省事不自己编译,偏向直接下载,结果发现从Mono 2.10.8起大都以gtksharp2.12.11为基础(这就与上面的IDE选择矛盾了因为它至少要2.12.22),只能找往下的版本,结果一路下来有好多不提供...windows installer版本中的,最终选择了mono-3.12.0-gtksharp-2.12.26-win32-1,它能满足2.12.22的最低要求。...Version=v4.0] [HKEY_LOCAL_MACHINE|SOFTWARE|Microsoft|.NETFramework|v4.0.30319|SKUs|.NETFramework,Version...wordpress可以稍作修改在其运行。 Phalanger完全可以做成跟ironpy,ironruby一样,变成mono/lib下的语言组件。 这是以后的话题了。

65310

Wix 安装部署(五) Bootstrapper 捆绑安装

大家好,又见面了,是你们的朋友全栈君。...Windows Installer中分别在Redistributables和Registry中设置就行了,特别是注册,可以直接把目录从你自己的电脑拖过来。...1.先在Bootstrapper工程中引用WixNetFxExtension.dll 这个动态链接库中 已经包含了各种.net 版本 2.Chain 元素中添加安装清单。...但是 所以Bootstrapper中的安装程序都是没有窗口的。安装顺序一个个默默的装完,没有一步,下一步。和Click Once部署的一样。一次性装完。...很多PC软件都是可以自动检测版本,下载更新,VS自带的ClickOnce也可以运行前自己动检测,发现新版本会去提示下载更新,需要借助一个发布网站就行。但那个可配置性就更 低了。

1.1K20

混合模式程序集是针对“v1.1.4322”版的运行时生成的,没有配置其他信息,无法 4.0 运行时中加载该程序

昨天调用特殊的Dll 报错:混合模式程序集是针对“v1.1.4322”版的运行时生成的,没有配置其他信息,无法 4.0 运行时中加载该程序。... 保存然后重新生成就好啦 生成好后目录下会出现一个“******.exe.config...理解就是程序的配置文件 image.png “如果要单独把软件拖出来记得把这个文件也一并拖出哦,不然还会报上面的错误” 这个“*****.pdb”文件是程序数据库(PDB) 文件保存着调试和项目状态信息,使用这些信息可以对程序的调试配置进行增量...最关键的是:当程序异常输出异常时,可以准确的输出报错的代码函数与行数 简简单单,记得点赞分享哦

98920

ef+Npoi导出百万行excel之踩坑记

最近在做一个需求是导出较大的excel,本文是记录在做需求过程中遇到的几个问题和解题方法,给大家分享一下,一来可以帮助同样遇到问题的朋友,二呢,各位大神也许有更好的方法可以指点小弟一下,让顺便学习一下...2Fdev16.query%3FappId%3DDev16IDEF1%26l%3DZH-CN%26k%3Dk(System.Random.%2523ctor);k(TargetFrameworkMoniker-.NETFramework...,Version%3Dv4.0);k(DevLang-csharp)%26rd%3Dtrue&view=netframework-4.8)也就是说生成一样的文件名,然后我们通过 github里可以看到...nuget最新版 是去年12月份发布,并没有包含上面的更改; 所以呢 要么github下载最新版编译要么自己解决,想了想如果换版本的话以前的功能可能会影响到所以,我们就在外面加一把小锁吧!如图 ?...总结: 1.导出大数据用SXSSFWorkbook 2.构建SXSSFWorkbook 时候lock或者自己编译最新版本 3.我们做导出时,ef查询数据后记得加AsNoTracking 关闭绑定跟踪。

1.2K20

进阶|C#利用反射方式动态调用类库里的方法(附源码)

反射能够调用一些私有方法和字段等 本章由来 写这篇的原因其实就是上面我们说到的反射作用的场景第二条,还是自己做的那个商盘通的程序,后端用的.netframework4.0的框架,以前连接数据库都是自己封装好的...,只装了4.0的用户打开程序肯定会报错,影响用户体验,于是就自己想了一个思路,把sqlsugar相关的所有操作都封装好一个类库里,然后通过判断用户的.netframework版本,来实现是否自动调用新的这个类库...嗯,由上面的思路看,完美,然后就开始做相关的Demo,结果很快写完后测试立马被啪啪的打脸,发现低版本框架的程序不能调用高版本的类库,也就是说的主程序一直用的.netframework4.0,不能调用为....netframework4.5的类库,所以这个方案就被否决了,不过最终不能用上,不代表没有价值,反射调用类库的方法还是要学习的,而且也把它调用成功的封装了一个单元文件,直接引用即可。...检测.NetFrameWork版本 项目中DotNetApi.cs即是可以检测.netframework版本,里面的GetDotNetVersion的方法就是检测方法,直接上代码: /// <summary

2.1K40

C# -多线程任务 Task

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。...https://www.cnblogs.com/yunfeifei/p/4106318.html Thread Thread默认为前台线程,也可以设置为后台线程,主程序必须等待线程执行完毕后才可退出程序...开启一个新线程,线程不做任何操作,都要消耗1M左右的内存,所以是伪多线程,感觉就是一个cpu上一个一个的执行,和之前的顺序有差别。 ?...view=netframework-4.8 ThreadPoll是线程池 其目的是为了减少开启新线程消耗的资源(使用线程池中的空闲线程,不必开启新线程,以及统一管理线程(线程池中的线程执行完毕后,...view=netframework-4.8 创建一个task也有3种方式来操作,Task.Factory.StartNew()、Task run()、new Task(), 前面2种是一样的,不需要用

3.5K102

Target 中获取项目引用的所有依赖(dllNuGetProject)的路径

项目编译成 dll 之前,如何分析项目的所有依赖呢?可以在在项目的 Target 中去收集项目的依赖。...然而实际如果真的编译这个项目,会发现我们得到的结果有一些问题: 实际其值就是写到每一个 Reference 里面的字符串的集合 比如引用了 System.Xaml,那么这里就会是 System.Xaml...注意, BeforeTargets 增加了一个 ResolveAssemblyReference。...,ReferencePath 则是将所有的 dll 的路径也输出了,而且即便是项目引用,项目编译好的 dll 的路径也。...\v4.5\Facades\System.Xml.XmlSerializer.dll 解读原因 解析引用的 dll 的路径的 Task 是 ResolveAssemblyReference,你可以 Microsoft.NET.Sdk

3.3K20

PowerShell系列(三):PowerShell发展历程梳理

SP2● 最低:NetFramework:4.0● 下载地址:https://www.microsoft.com/en-us/download/details.aspx?...id=34595版本特性● 命数量增加到1000多条● 定时执行Job:增加定时执行Job,可以编写计划任务程序● 编码智能提示:ISE开发环境中,支持编码智能提示,大大方便了代码的编写效率● 模块自动加载...● 最低:.NET Core 2.0版本● 下载地址:无版本特性● 基于NetCore2.0 实现了真正意义的跨平台。可以Windows、Linux、MacOS运行PowerShell6.0。...● 增加了两个小版本更新:6.1 集成Windows Server 2019版本当中,命令增加到1900多条;6.2 版本修复了一些Bug、本地语言支持方面提供了增强功能8、PowerShell7.0... 7调用DSC资源的能力(实验性)正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

23241

2019-12-1-实现一种异步版本的AutoResetEvent

我们2019-12-1-实现一种异步版本的ManualResetEvent - huangtengxiao给大家介绍了异步版本的ManualResetEvent。...此时对应的task可以继续执行。 分析 不过可以注意到上面的代码都是先调用WaitOneAsync的方法先得到返回。而AutoResetEventset时,获得同步锁的线程是随机的。...这里实际无伤大雅,因为顺序也是随机的一种情况,使用AutoResetEvent本身就不应该依赖顺序。...另外,我们2019-12-1-使用SemaphoreSlim实现异步等待 - huangtengxiao中提到的SemaphoreSlim对象将最大并发数设置为1时,完全可以实现异步版本的AutoResetEvent...view=netframework-4.8) ---- 本文会经常更新,请阅读原文: https://xinyuehtx.github.io/post/%E5%AE%9E%E7%8E%B0%E4%B8%

52010

用 WiX 制作安装包:制作 WPF 安装包界面(入门篇)

添加“BootstrapperCore.dll”引用 现在,为此 WPF UI 项目添加“BootstrapperCore.dll”引用项目的“依赖项”右键,“添加引用…”; 点击“浏览…”;...如果大家感兴趣使用 NuGet 的方式来完成整个打包项目的构建,替代现在单独安装的方式,可以单独再写一篇高级教程。 2....但是我们可以留意到 元素的全部内容跟一个标准 .NET Framework 应用程序的配置文件中的 元素一模一样,所以实际推荐把此文件放到 WPF UI 项目中...不要设置成任何类似 v4.6.2、v4.8、.NETFramework,Version=v4.5 之类的值。...附源代码 附上必要的源码,避免你阅读教程时因模板文件的版本差异造成一些意料之外的问题。

72420
领券