问题标签 [packagereference]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net-core - Nuget 包创建不包括引用的 dll
我正在使用 Visual Studio 2019 社区版和包管理器控制台。我正在使用 .net core 2.2 并启用了包引用。我希望能够创建一个单独的 nuget pack coreproj1,它还将包含 Coreproj2 和 coreProj3 的 dll,而不必打包 CoreProj2 和 CoreProj3,因为有很多项目并且打包它们是不可行的。我在网上查看并找不到明确的解决方案,因为他们中没有多少人使用包参考
我目前正在使用
当我尝试安装软件包时,出现以下错误(CoreProj3 出现相同的错误)
c# - 如何排除 Microsoft.NETCore.APP 的依赖项
如何排除 Microsoft.NETCore.App 的依赖项,以便可以将其替换为本地编译(错误修复)版本。
我通过制作具有更高版本号的包来执行替换包的正常过程,并尝试编译。由于重复引用,该构建尝试链接两者并在 CS0433 的编译步骤中死亡。
编译错误:
C:\Program FFiles\dotnet\sdk\2.1.604\Microsoft.Common.CurrentVersion.targets(2114,5): 警告 MSB3243: No way to resolve conflict between "System.Threading.ThreadPool, Version=5.0.0.0, Culture =中性,PublicKeyToken=null”和“System.Threading.ThreadPool,版本=4.1.1.0,文化=中性,PublicKeyTokn=b03f5f7f11d50a3a”。任意选择“System.Threading.ThreadPool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null”。[小路]
Program.cs(17,13):错误 CS0433:“System.Threading.ThreadPool,Version=4.1.1.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”和“System.Threading.ThreadPool,Version”中都存在“ThreadPool”类型=5.0.0.0,文化=中性,PublicKeyToken=null' [路径]
msbuild - 将静态文件添加到在 webproject 发布事件上发布到 wwwroot 的 Nuget 包
我正在尝试构建一个带有静态文件(js、CSS 和图像)的 NuGet 包,可以在 Web 项目中作为包引用。我希望在触发发布时将这些文件发布到发布目录。
我的 .nuspec 配置是
我的静态文件被发布到<outputdir>/bin
文件夹而不是<outputdir>
.
powershell - Nuget 包 init.ps1 脚本和 PackageReference 修改
我想在“copy local = false”模式下在我的包中引用 dll。换句话说,我不希望我的软件包附带的 dll 在构建后被复制到输出目录中。
在“packages.config”场景中可以通过在 tools/install.ps1 文件中添加以下脚本来完成此操作。
我知道具有 PackageReference 功能的最新 Nuget 版本仅使用 init.ps1 脚本。但是我不知道我应该在那个脚本中写什么。
我也知道包用户可以添加...
实现这一目标。但作为包作者,我真的很想强制执行这种行为。那么是否可以在脚本中添加它?
c# - 尝试发布使用 PackageReference 的 WPF 时出错
我正在升级我们的一个 WPF 应用程序。在升级过程中,我将应用程序从使用packages.config
NuGet 包的格式转换为使用该PackageReference
格式。
一切似乎在本地运行良好,但我们的构建代理开始抱怨我们的 NuGet 包:
错误 MSB3188:程序集 'C:\Users\tfs\.nuget\packages\Utils\1.0.0\lib\net45\Utils.dll' 必须经过强签名才能标记为先决条件。
这是有道理的,因为不再直接引用 Utils 包。使用该packages.config
格式时,项目会引用每个 NuGet 包,但使用该PackageReference
格式时,只会引用顶级包;不包括包依赖项。此外,任何被引用但具有未由 WPF 项目显式引用的 NuGet 依赖项的项目也会受到影响。
将包依赖项直接添加到 WPF 项目可以解决此问题,但似乎不必这样做。
奇怪的是,当我进入项目的发布设置/应用程序文件时,程序集没有被列为Prerequisite
,而是被标记为Install (Auto)
。
没有添加 NuGet 包依赖项(不仅仅是顶级包),我在这里有什么选择?是否有某种设置或 msbuild 参数等我可以使用,允许我使用 PackageReference 格式,同时仍然只引用顶级包?
msbuild - 如何在 csproj 构建输出中包含来自 Nuget 包的 XML 文档
我有一个包含 XML 文档文件的 nuget 包。
packages/MyPackage.1.0.0/lib/net472/MyPackage.xml
但是,当我构建我的项目时,我想在输出中包含这个 xml 文件。
所以当我:
dotnet MyProj.csproj -c Release
我想得到:
然而它永远不会出现。我怎么才能得到它?
msbuild - 旧项目格式忽略 PackageReference 条件
我正在尝试通过使用 Directory.Builds.props/Directory.Build.targets 文件来集中我们的一些项目配置。不幸的是,我们混合了新旧(sdk 风格)项目格式。由于某些功能在新格式中不可用,并非我们所有的项目都可以转换为新格式。
我遇到的问题是我想让我们所有的测试项目自动引用某些 nuget 包。对于新格式的项目,这很好用。然而,旧格式的项目似乎忽略了我指定的 PackageReferences 的任何条件。我对这种情况使用什么似乎并不重要。
这是一个非常简单的 Directory.Build.Targets 文件的示例:
在这种情况下,我永远不会看到任何项目中包含 Moq 包。对于旧格式的所有项目,无论如何都包括在内。
我也尝试在以下条件下使用条件:
- ItemGroup 本身
- 选择/何时阻止
另一方面,对属性组或属性设置条件按预期工作。
我没有在文档中看到任何关于 ItemGroup 或 PackageReference 不支持条件的内容。有什么我想念的吗?
谢谢
c# - 使用 C# 代码以编程方式恢复 PackageReferences
我正在尝试使用 C# 基本代码以编程方式恢复.NET 框架和 .NET 核心项目的packageReference。
我想过使用 dotnet.exe / msbuild.exe 但我不知道如何!
我想模拟我们可以用dotnet CLI做什么:
但我想以编程方式进行。
感谢您的回答。
.net - 如何使用 MSBuildWorkspace 获取引用的 nuget 包?
我正在使用 MSBuildWorkspace 加载解决方案以使用 OpenSolutionAsync 进行分析,然后对项目进行迭代。我看不到有关项目引用的 nuget 包的任何信息。有 MetadataReferences 但这是一个没有显式版本库的 dll 列表 - 它位于路径中的某个位置,但要提取它,我必须从文本中提取它。有时这个列表也是空的,因为项目加载过程中出现了一些错误。
有什么方法可以获取引用库的名称和版本的简单列表?
.net - 从 packages.config 迁移到 PackageReferences 导致无法加载文件或程序集“...”或其依赖项之一。访问被拒绝
将我们的项目升级到 PackageReferences 后,我在构建服务器上面临以下问题(本地 AzureDevOps 代理)
这对于不同的 Dll 随机发生(50% 的时间)。这些 dll 位于不同的目录中:Nuget 恢复目录、参考程序集或任何其他代码 dll。
在服务器上,我们使用的是 VS 2017。
现在,当我将项目迁移到 PackageReferences 时,事情就开始发生了。在此之前,我们从未遇到过拒绝访问的任何问题。这是完全相同的代码库,具有相同的构建基础设施。
我试图做的:
- 我试图检查进程监视器,但那里没有“拒绝访问”条目。我可以看到它被正确读取
- 为了安全起见,我在本地机器上安装了代理,看看它是否不是构建机器的问题,它也确实发生在那里
- 当我们使用 MSBuild 或 Visual Studio 在本地构建时,不会发生这种情况
任何想法,将不胜感激。至少要指出解决方案的方向。
[更新]
实际上,我们有整整 3 天的时间没有服务器上发生的问题,现在它又回来了。
我们还“设法”在使用 msbuild(PS 脚本)在本地构建时获得它一次。从该本地构建和下一个构建的外观(通过一个之后立即触发),我们设法看到 nuget 正在下载在上一个(失败)构建中成功下载的包。我们没有观察到连续传递构建的行为。除非清理,否则 Nuget 不会每次都下载新包。
[Update2] Nuget 还原步骤和构建步骤的调试日志文件。
谢谢
米