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

.NET Core 多框架支持(net45+netstandard20)实践中遇到的一些问题总结

TargetFrameworks>netstandard2.0;net471 这时如果你编译,或许会遇到System.Web 冲突的问题,或者是System.Web.HttpUlitity 在上下文中不存在...id=56116 问题2:多个TargeFramework 导致关于Nuget引用的问题 问题来源:这个问题是因为自己打包生成的一个坑,忘记添加 Assembly Version了,导致发布出去的找不到引用的程序集...2.1 问题描述: 关于 Nuget 解析的,有个最近项原则, 详情可参考NuGet 如何解析依赖项 用一张微软的图来解释就是: ?...今天遇到的一个问题是,我的一个Nuget(称之为 Package A 当前版本为 1.2.3 )本来只支持 netstandard 2.0 的版本,csproj 文件中的定义为 <TargetFramework...A, 关系路线为 【Package B 1.0.0】 -> 【Package A 1.2.3】 这时,程序中调用这两个可以正常使用的。

2.1K20

创建一个自定义 ASP.NET Core Docker 镜像

创建 Dockerfile 文件 Docker Hub 包含了很多的一系列的应用程序镜像,但是没有我们当前YoYoMooc.Exampleapp程序的镜像,所以我们会使用 Docker 的技术来创建一个自定义镜像...目前 dist 文件夹不存在,我们会在后面准备它。 设置工作目录 WORKDIR命令便是设置容器的工作目录,这是在运行时非常有用命令,当你需要指定某个路径或者文件的,不必指定完整路径。...dist dotnet restore命令是为了确保项目已经拥有所有需要的 Nuget 。...build 关键字后面的句号提供了上下文,也就是 Docker 文件中的 COPY 等命令所使用的位置。 参数说明: -t参数 :用于标记新的镜像名称为yoyomooc/exampleapp。...所以产生了一个问题,网速慢,可以采用我自制的镜像。

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

dotnet 用 NuGet 将自己的工具作为 dotnet tool 分发

几乎所有的 dotnet 开发者都能用上 NuGet 服务,也就是此工具可以被几乎所有的 dotnet 开发者下载使用。那么制作难度有多大呢?...此时要求工具本身不需要做安装等类似的部署,而是直接复制文件过来就能使用的工具 工具的前提要求就是,这个工具本身通过复制文件的形式就能在设备上运行,无需部署 而 NuGet 的本质就是一个压缩,将这个工具压缩...,然后修改为 NuGet ,上传到 NuGet 上,这样就支持其他人从 NuGet 上下载这个工具的压缩。...这也就是没有限制工具一定只能作为控制台了 将一个现存的 dotnet net core 工具作为 dotnet tool 发布很简单,只有以下步骤 根据 Edi 的博客教你自制.NET Core Global...这就是 dotnet 工具的强大了,可以通过 dotnet 工具使用 NuGet 上超级多的工具 当然,程序员都喜欢自动化,如果是开源在 Github 的可以使用 dotnet 配置 github 自动打包上传

1K20

NuGet 修改路径

修改全局包管理目录 通过 NuGet 安装NuGet 先将包下载至一个统一的目录,默认路径是:C:\Users\用户名\.nuget\packages 下载的多了以后,会导致 C 盘空间被大量占用..." value="D:\packages" /> 如果 NuGet.Config 不存在,也可以在 C:\Program Files (x86)\NuGet\Config 目录下新建一个...修改项目中的路径 安装NuGet 会先搜索全局包管理目录,如果需要安装的已经存在,则不会去 NuGet 网站下载,不存在则会先将包下载至本地全局目录下。...然后将全局包管理目录下的文件拷贝一份至当前项目下的 packages 文件夹中,并将相应 DLL 添加至项目引用。...NuGet NuGet 会检测这个配置文件并读取里面的配置信息,如果子目录内也有 NuGet.config 文件,那么 NuGet 会自动将子目录内的配置与上级目录的配置合并,存在相同的配置,以子目录内的配置优先

2.1K10

Roslyn 如何在 Target 引用 xaml 防止文件没有编译

使用新的项目格式,可以使用 Target 添加项目,但是有一些项目需要在合适的时候添加,如果添加早了,那么会让用户看到这些文件,如果添加的时间是在引用编译之后,那么文件将无法进行编译。...Generator>MSBuild:Compile 这时会出现编译不通过 MainWindow.xaml.cs(25,13): Error CS0103: 当前上下文中不存在名称...源代码打包项目是为了解决很小的代码,都需要做出一个 nuget ,这个 nuget 是 dll 也就是软件会引用太多的 dll ,大家都知道如果引用的 dll 多了,软件启动速度也就是变慢了。...所以我就使用打包 nuget 但是引用的是源代码的方式,这样开发者在安装 nuget 之后可以快速调试安装的库的源代码。...项目请看: dotnet-campus/SourceYard: Add a NuGet package only for dll reference?

1K10

Roslyn 如何在 Target 引用 xaml 防止文件没有编译

使用新的项目格式,可以使用 Target 添加项目,但是有一些项目需要在合适的时候添加,如果添加早了,那么会让用户看到这些文件,如果添加的时间是在引用编译之后,那么文件将无法进行编译。...Generator>MSBuild:Compile 这时会出现编译不通过 MainWindow.xaml.cs(25,13): Error CS0103: 当前上下文中不存在名称...,这个 nuget 是 dll 也就是软件会引用太多的 dll ,大家都知道如果引用的 dll 多了,软件启动速度也就是变慢了。...所以我就使用打包 nuget 但是引用的是源代码的方式,这样开发者在安装 nuget 之后可以快速调试安装的库的源代码。...项目请看: dotnet-campus/SourceYard: Add a NuGet package only for dll reference?

71120

微软发布 Visual Studio 扩展 NuGetSolver,简化 NuGet 依赖项冲突解决过程

据报道,该工具有效地解决了最常见的 NuGet 错误和警告,如依赖之间的 约束(NU1107)、依赖不包含任何与项目兼容的资源(NU1202)、检测到的降级(NU1605),以及当资源可能不是 100%...此外,文中还指出,如果解决方案当前没有依赖冲突,开发者仍然可以运行该工具来升级依赖项,尽量减少更改。这比使用 NuGet 包管理器一个一个地升级更快速、更可靠,尤其是在面对其他依赖约束。...该工具需要 Visual Studio 2022 和网络连接才能正常使用。它从 nuget.org 检索可用的版本,并从提供的缓存托管服务下载缓存数据库文件。...不过,在使用时要注意一些使用建议和已知的限制。目前仅支持 nuget.org 源,不支持多源和本地源。虽然尚未完全支持多目标框架,但该工具可能会为某些目标框架生成修复方案。...虽然 NuGetSolver 可以解决编译依赖冲突,但仍可能出现运行时错误。此外,该工具不验证建议的版本是否存在已知漏洞,因此建议开发者使用 NuGet 中的审计功能来解决此问题。

15610

可集成到文件管理器,一句 PowerShell 脚本发布某个版本的所有 NuGet

要发布 NuGet ,只需要执行命令 nuget push xxx.nupkg 即可,或者去 nuget.org 点鼠标上传。...关于使用 Directory Opus 继承工具栏按钮的细节,可以阅读我的另一篇博客: 在 Directory Opus 中添加自定义的工具栏按钮提升效率 - walterlv 具体来说,就是安装上文中所述的方法添加一个按钮...Opus 当前目录 执行一段 PowerShell 脚本,但执行完之后不退出(这样,我可以观察到我实际上推送的是哪一些,并且可以知道推送是否出现了错误) 要执行的命令为 nuget push *.xxx.nupkg...当前选中的文件,我用正则表达式匹配出其版本号和后面的 .nupkg 后缀 将正则表达式匹配出来的文本作为 nuget push 的,最终生成的命令会非常类似于本文一开始提到的命令 nuget push...毕竟我一次编译产生的 NuGet 太多了,还是需要使用这样的方式来提高一点效率。至于为什么不用持续集成,是因为目前 SourceYard 还不支持在 GitHub 上集成。

21030

.NET开源分布式锁DistributedLock

("del",KEYS[1]) else return 0 end 续租机制 基于上文中的实现方式,我们在设置key过期时间,不能准确的描述业务处理时间。...DistributedLock 包含基于各种技术的实现;可以单独安装实现,也可以只安装 DistributedLock NuGet ,这是一个“元”,其中包含所有实现作为依赖项。...请注意,每个都根据 SemVer 独立进行版本控制。 基础使用 以下两种方法,都是基于RedLock来实现的,在单机上,使用了续租机制,更多细节可以自己观看源码,下文中会简单介绍源码。..._options.RedLockTimeouts.Expiry)) : null; } 根据当前线程是否在同步上下文,对单库和多库实现进行区分和实现 // 该方法用于尝试获取分布式锁...> TryAcquireAsync() { // 检查当前线程是否在同步上下文中执行,以便根据不同情况采取不同的获取锁策略 if (SyncViaAsync.IsSynchronous&

31020

Visual Studio项目引用出现感叹号怎么办?

这时候第一个想到的工具都是Nuget,这是微软的一个开源包管理工具,我们可以利用它来还原我们丢失的DLL,选择我们的解决方案,点击"还原Nuget",但是问题没有解决,或者提示没有需要下载的话往下看...dll,如果不存在,就下载,然后指向。...第二种问题: 首先获取离线NuGet 1.NuGet离线安装获取方法,例如下载的名称为“ sharpziplib.0.86.0.nupkg ” 2.如果你的同事的项目运行正常,那么当前项目引用的都在解决方案文件....sln文件的统计目录packages文件夹下, 从中找到NuGet对应的文件夹拷贝至自己的机器上。...再次管理NuGet,安装源选刚才新建的安装源即可 ?

3.1K20

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

使用 NuGet 来分发源代码,如果目标项目是 WPF 项目,那么会有一大堆的问题。 本文将这些问题列举出来并进行分析。...---- 源代码 源代码不是 NuGet 官方的概念,而是林德熙和我在 GitHub 上做的一个项目,目的是将你的项目以源代码的形式发布成 NuGet 。...在那篇博客中,我们解释到新生成的项目文件会使用 ReferencePath 替代其他方式收集到的引用,这就包含项目引用和 NuGet 的引用。...在使用 ReferencePath 的情况下,无论是项目引用还是 NuGet 引用,都会被换成普通的 dll 引用,因为这个时候目标项目都已经编译完成,包含可以被引用的程序集。...CompileTypeName,传入了字符串常量 Compile,这是为了在生成临时项目文件使用正确的编译项的名称。

37240

MSBuildRoslyn 和 NuGet 的 100 个坑

不存在的版本(新版本已修复) 如果某个的特定版本在所有源中不存在,那么安装此的项目再也无法更新或者卸载此包了(也就别想再编译通过了)。...其中的 NuGet 原生支持是非常清爽的。 升级很清爽,降级就不爽了!这种情况会发生在新分支中进行了项目文件升级,随后切换回之前的分支;这时相当于在降级。...但是,只有使用了 Sdk 风格的 csproj 文件才会在执行了此命令后重新生成正确的引用缓存文件;原来的格式并不会生成此文件,也就是说,无法修复。...唯一的解决办法就是清除项目中的所有 NuGet 缓存,使用 git clean -xdf。...事实上,B 极有可能是不存在的,也就是说,你打的 A 并没有办法给大家正常使用

29030

MSBuildRoslyn 和 NuGet 的 100 个坑

不存在的版本(新版本已修复) 如果某个的特定版本在所有源中不存在,那么安装此的项目再也无法更新或者卸载此包了(也就别想再编译通过了)。...其中的 NuGet 原生支持是非常清爽的。 升级很清爽,降级就不爽了!这种情况会发生在新分支中进行了项目文件升级,随后切换回之前的分支;这时相当于在降级。...但是,只有使用了 Microsoft.NET.Sdk 的新 csproj 文件才会在执行了此命令后重新生成正确的引用缓存文件;原来的格式并不会生成此文件,也就是说,无法修复。...唯一的解决办法就是清除项目中的所有 NuGet 缓存,使用 git clean -xdf。...事实上,B 极有可能是不存在的,也就是说,你打的 A 并没有办法给大家正常使用

1.3K20

在ASP.NET MVC5中实现具有服务器端过滤、排序和分页的GridView

Datatables.MVC5 首先,我们需要从 NuGet 包管理器中安装 datatables.mvc5。这是 Stefan Nuxoll 实现的绑定在控制器上的数据集模型。我们为什么需要这个?...现在,我们开始创建数据库上下文类,这个类将会被Data Access实体框架使用。 创建模型和数据访问 首先,我们需要为 Asset 表创建一个模型,我们将会使用这个模型通过 ORM 来恢复数据。...我们将在数据库上下文中为 Asset 表添加一个属性,这个属性将会成为 Asset 表的实体框架代表,用来创建脚本。...安装 Datatables.net 现在我们开始安装 datatables.mvc5,点击 Tools >> NuGet Package Manager >> Manage Nuget Packages...首先我们需要引用 System.Linq.Dynamic,以便在行为中可以使用动态链接方法。再一次进入 NuGet 包管理器搜索 System.Linq.Dynamic,并在项目中安装它。 ?

5.4K80

使用GUI工具高效构建你自己的Nuget丰富的基础信息添加要包含的文件The end

文中提到过,党Content文件夹中包含了后缀名为.transform的文件nuget将会merge目标文件,比如示例中使用的就是一个ASP.NET MVC扩展的,它可以提供给ASP.NET MVC...发布 最后,使用GUI工具发布当然是简单的令人发指了,点击工具栏中的File->publish就可以简单的发布你定义的包了,Puslish key来自于你的nuget账户的个人信息页面 ?...使用 在VS中创建一个项目,打开nuget package窗口,在搜索框中输入上文中定义的ID:ListControlExtension或者直接在命令行工具中输入命令:Install-Package...上文中使用效果: View文件代码:     @Html.LabelFor(model => model.Departments, htmlAttributes...,如果您喜欢这篇文章,记得在右下角给个“推荐”哦,如果您对上文中的广告的使用效果有什么意见和建议,请不吝拍砖,谢谢 The end

1.2K60

.NET斗鱼直播弹幕客户端(下)

本文将涉及以下内容: 介绍如何使用 ReactiveExtensions( Rx),演示这一系列操作用起来,就像写 HelloWorld一样简单; 用我自制的“准游戏引擎” FlysEngine,只需少量代码...,即可实现桌面弹幕的效果; 最后提供一波“伸手党”福利,文中所有可运行、完整代码,将按原样奉上。...Rx.NET Rx,是 ReactiveExtensions的缩写,据说 Rx发明于 .NET2.0代的微软。那时候还没有 async/await。...Rx-Hello World 首先引入 NuGet System.Reactive,一个简单的“异步多值返回”的 Rx示例代码如下: Observable.Create(async (o,...桌面弹幕 这可能是另一个主题——实时渲染,用到了我自己写的“准游戏引擎” FlysEngine,因此需要安装 NuGet:FlysEngine.Desktop。

95730
领券