NuGet是一个免费的,开源的开发人员,专门用于.NET平台的包管理系统。
将 NuGet 打包为预发行版本,同时还使用 IncludeReferencedProjects
我遇到了一个感觉应该很简单的问题,但我正在努力寻找解决方案。我有一个包含多个类库的解决方案,这些类库也依赖于共享项目引用
AzureDevops:将 NuGet 打包为预发行版本,同时还使用 IncludeReferencedProjects
我遇到了一个问题,感觉它应该很简单,但我正在努力寻找解决方案。我有一个包含多个类库的解决方案,这些类库也依赖于共享项目引用......
如何在 ADO 中仅使用 .json 文件创建 NuGet 包,没有 csproj 或二进制文件
由于工作场所中 ADO 的安全问题,我无法在项目构建期间恢复 GIT 子模块。我们需要的一个依赖项是一组通用且特定于堆栈的配置文件...
C# .Net 如何将应用程序重定向到已安装的 .Net Framework(从控制台,无需 Visual Studio)
有人给我发送了一个解决方案,其中包含一些 C# 项目文件。我只使用 dotnet 的命令行界面,并且由于计算机内存不足而没有安装 Visual Studio。 ...
我正在学习 ASP.NET MVC5 和实体框架。在我的学习中,我使用 Lynda 视频教程,但我被困在 Nuget 控制台,必须运行以下代码: 启用迁移 -
(不是可以通过 nuget 包部署数据且无程序集吗?的重复,因为包结构在过去 12 年里发生了变化) 我有一些大型测试数据文件想要部署...
无法将许可证/自述文件添加到 NuGet 包:错误 NU5030
我有以下 .targets 文件,我将其导入到多个 .csproj 项目中: ... 许可证 我有以下 .targets 文件,我将其导入到多个 .csproj 项目中: <Project> <PropertyGroup> ... <PackageLicenseFile>LICENSE</PackageLicenseFile> <PackageReadmeFile>README.md</PackageReadmeFile> ... </PropertyGroup> </Project> LICENSE和README.md文件都位于存储库根目录下的.targets文件旁边。 但是我收到以下错误: 错误 NU5030:软件包中不存在许可证文件“C:\...lah\LICENSE”。 [C:\... lah\whatever\whatever.csproj] 参考文档: https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#packing-a-license-expression-or-a-license-file https://devblogs.microsoft.com/nuget/add-a-readme-to-your-nuget-package/ 问题: 如何将这两个文件打包到 NuGet 包中? 终于找到了原因感谢文档中的线索尽管这还不足以让它工作。 不仅必须有ItemGroup,而且这些应该有$(MSBuildThisFileDirectory): <Project> <PropertyGroup> <PackageLicenseFile>LICENSE</PackageLicenseFile> <PackageReadmeFile>README.md</PackageReadmeFile> </PropertyGroup> <ItemGroup> <None Include="$(MSBuildThisFileDirectory)LICENSE" Pack="true" PackagePath="" /> <None Include="$(MSBuildThisFileDirectory)README.md" Pack="true" PackagePath="" /> </ItemGroup> </Project> 为了概括这个问题的公认答案,重复的https://stackoverflow.com/a/75622542/482758,及其交叉帖子https://github.com/NuGet/Home/issues/12463 : PackageLicenseFile构建属性中指定的许可证文件必须“包含在包中”,但这样做的机制很微妙并且记录很少。 许可证文件通常是不包含在包中的类型默认情况下,因此需要通过None项显式包含(None因为该文件不需要特殊处理)。 传递给包含项的路径是文件的正确路径,其形式可以是绝对路径,也可以是从包含项的构建时评估位置开始的相对路径。 帮助指定此路径的常见属性包括 SolutionDir,通常是项目根; MSBuildThisFileDirectory,这是包含文件的目录;和MSBuildProjectDirectory,这是正在构建的项目的目录。 除了选择包含之外,一般不得通过 IncludeContentInPack 禁用文件包含,其值必须为 true,默认为 true。 包含项的 PackagePath 属性确定许可证文件出现在包中的虚拟路径,如果留空,则计算结果为原始文件名。 PackageLicenseFile的值必须指向已解析的PackagePath值。 这个问题的公认答案有效,因为许可证文件并不是首先通过某些包含项(例如None)明确包含的。我们可以得出这样的结论,因为尝试打包包含不存在的文件路径的项目会产生 NU5019: File not found 错误。此外,$(MSBuildThisFileDirectory)LICENSE 的特定值有效,因为该目录包含 .targets 文件和许可证文件(该路径在 .csproj 文件内会被错误解析)。 答案https://stackoverflow.com/a/75622542/482758有效,因为作者手动禁用了IncludeContentInPack,因此任何配置都无法工作。当作者更正该特定错误时,许可证文件已被重新定位到与包含包含项的文件相同的目录,因此该答案不再回答原始问题,其中许可证文件位于祖先目录中。 总结一下: 如果 LICENSE.txt 文件与 .sln 文件位于同一目录中,则无论将其放置在哪个属性文件中,以下配置都将起作用(Directory.Build.props、Directory.Build.targets、其他 .props 或 .targets) 、.csproj): <PropertyGroup> <PackageLicenseFile>LICENSE.txt</PackageLicenseFile> </PropertyGroup> <ItemGroup> <None Include="$(SolutionDir)LICENSE.txt" Pack="true" PackagePath="" /> </ItemGroup> 如果许可证文件不在解决方案目录中,或者不在解决方案目录中可以轻松访问的目录中,则其他构建属性之一可能会更方便。如果文件恰好位于 .csproj 目录中,则根本不需要路径前缀。 在这里分享另一个答案,因为接受的答案对我不起作用。 如果您有类似的文件夹结构,如下所示: [+] ProjectFolder/ - LICENSE - README [+] src/ - Project.csproj - Project.sln ... [+] test/ ... 在 .csproj 中添加以下内容 <ItemGroup> <None Include="..\LICENSE"> <Pack>True</Pack> <PackagePath></PackagePath> </None> </ItemGroup>
我正在尝试创建一个仅包含 MSBuild *.targets 文件的 nuget 包。我可以创建一个 C# 类库并添加我的目标文件,但我不需要 C# 构建过程的开销。难道是……
我正在尝试从静态 C++ 库创建 NuGet 包。我在本地 Azure DevOps 服务器中有一个构建管道,并且我尝试使用针对 ...
我在我的机器上的 nuget.config nuget 源中配置了一些。 其中之一(externalSource)查看外部受保护源(以下所有内容均由VS生成): 我的机器上的 nuget.config nuget 源配置很少。 其中之一(externalSource)查看外部受保护源(以下所有内容均由 VS 生成): <?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> <add key="externalSource" value="https://.external_source./nuget/v3/index.json" /> <add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" /> </packageSources> </configuration> 我可以在浏览器中从我的机器上的所有源检索json配置,我可以在浏览器中输入正确的凭据(即使用它没有任何问题)。另外,我可以在 VS 中的 Nuget Manager UI 中轻松使用这个 nuget 源代码。 我正在使用的机器也可以访问不同的 nuget 源,但该源未在任何地方配置(在 VS 或任何 nuget.config 中)。 现在,我创建一个简单的控制台应用程序: PS C:\..> dotnet new console --no-restore The template "Console App" was created successfully 注意:我故意跳过恢复以将问题区域限制为仅restore逻辑,如果没有此选项,new console命令将失败,即使项目本身将被创建。 现在我想恢复创建的应用程序: PS C:\..> dotnet restore Determining projects to restore... C:\Program Files\dotnet\sdk\8.0.100\NuGet.targets(156,5): error : Unable to load the service index for source "https://.external_source./nuget/v3/index.json". [C:\..\test.csproj] C:\Program Files\dotnet\sdk\8.0.100\NuGet.targets(156,5): error : Response status code does not indicate success: 401 (Unauthorized). [C:\..\test.csproj] 当我启用详细的日志记录详细程度时,我发现此步骤中发生了失败: 1>Target "Restore" in file "C:\Program Files\dotnet\sdk\8.0.100\NuGet.targets" from project "C:\..\test.csproj" (entry point): Task "RemoveDuplicates" Done executing task "RemoveDuplicates". Using "RestoreTask" task from assembly "C:\Program Files\dotnet\sdk\8.0.100\NuGet.Build.Tasks.dll". Task "RestoreTask" (in) RestoreGraphItems Count '4' (in) RestoreDisableParallel 'False' (in) RestoreNoCache 'False' (in) RestoreIgnoreFailedSources 'False' (in) RestoreRecursive 'True' (in) RestoreForce 'False' (in) HideWarningsAndErrors 'False' (in) RestoreForceEvaluate 'False' (in) RestorePackagesConfig 'False' .. CACHE https://api.nuget.org/v3/vulnerabilities/vulnerability.update.json 1>C:\Program Files\dotnet\sdk\8.0.100\NuGet.targets(156,5): error : Unable to load the service index for source https://.external_source./nuget/v3/index.json. [C:\..\test.csproj] C:\Program Files\dotnet\sdk\8.0.100\NuGet.targets(156,5): error : Response status code does not indicate success: 401 (Unauthorized). [C:\..\test.csproj] Assembly loaded during TaskRun (NuGet.Build.Tasks.RestoreTask): System.Diagnostics.StackTrace, Version=8.0.0.0, Culture=neutral, PublicKeyToken=.. (location: C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.0\System.Diagnostics.StackTrace.dll, MVID: .., AppDomain: [Default]) NuGet.Protocol.Core.Types.FatalProtocolException: Unable to load the service index for source https://.external_source./nuget/v3/index.json. ---> System.Net.Http.HttpRequestException: Response status code does not indicate success: 401 (Unauthorized). .. 我该如何修复它? 配置如下: 在 nuget.config 中: <packageSourceCredentials> <externalSource> <add key="Username" value="name" /> <add key="ClearTextPassword" value=".." /> </externalSource> </packageSourceCredentials> 或 dotnet restore 命令的选项: --interactive 或 --ignore-failed-sources 没有帮助。我可以使用选项 --source=nuget.org 修复它,但我必须配置 externalSource,因为在其他一些情况下应该从这个源进行恢复 更新:如果我通过以下方式检索nugets,错误就会消失:nuget search -take 10 -Source externalSource(当我运行它时,我没有看到任何提示或弹出窗口)在错误发生后,但只持续大约30分钟,然后它开始失败并显示401又出错了 UPDATE2 可重现问题的机器是 Windows 11 Enterprise,不确定这是否重要,但我在 Windows 10 上没有看到任何问题 UPDATE3 看起来解决问题的另一种方法是调用msbuild -t:Restore。这听起来像是 dotnet 二进制问题吗? 正确的答案确实是下载并设置artifacts凭证提供程序 在 Azure DevOps 工件上设置源时,系统会向您提供从多个源连接到源的说明。如果我们选择 dotnet CLI 的说明,则会显示以下内容:
在 Visual Studio 中使用使用 CPack 创建的 NuGet 包
我正在使用 CPack 创建 C++ CMake 项目的 NuGet 包。 cmake -S 。 -B构建 cmake --build 构建 --config 发布 光盘构建 cpack -G NuGet -C '发布' 我定义了几个cpack变量...
nuget add 在 msbuild exec 命令中不起作用
我正在尝试在 VS2022 中自动化流程 Build -> Pack -> Add for nuget package。我已经创建了 SDK 类型项目并使用默认设置来创建 nuget 包。执行 Pack Comm 后...
我在 Azure Cloud Build 过程中收到以下错误。我该如何解决这个问题? “##[错误]无法确定用于还原 NuGet 包的包文件夹。请指定 -
DevOps 管道无法使用 Artifact Feed 进行恢复
我正在开发 Azure DevOps 管道。我们最近开始将模块包发布到工件源,新项目使用 将这些模块导入为 NuGet 包。 ...
错误:NU1100:无法解析“net5.0”的“MicrosoftOfficeCore (>= 15.0.0)”
在 Visual Studio Code 的终端中,当我尝试运行时: dotnet 添加包 MicrosoftOfficeCore --版本 15.0.0 我在 Visual Studio Code 终端上收到以下错误: 错误:NU1100:无法恢复...
将 nuget 包从 VSTS 推送到 nuget.org 时忽略重复项
我在 VSTS 中构建了一个版本,该版本在存储库中的每次提交时都会触发。除了一个例外,一切都运转良好。 我们不会在每次提交时发布新版本的 nuget 包。所以我们的...
packages.lock.json 依赖项中的 [x.x.x, ) 是什么意思?
这个语法对我来说看起来很奇怪。它以括号开头但以逗号和括号结尾? [x.x.x, ) 在packages.lock.json 依赖项中意味着什么? “my.project.core”:{ ...
我有 2 个 NuGet 包:1 个主要包(YamatoDaiwaCS_Extensions)和 1 个本地化包(OfficialLocalizations/日语;将来,我计划进行更多本地化)。 为什么我有多个罪恶项目......
我正在尝试测试 AspNetZero (ANZ) 模板(Angular 16 风格),并且我正在尝试将代码构建为 Azure 管道中的 docker 映像。我需要使用一组自定义 DLL,我
如果构建管道工件已发布到具有相同版本号的工件提要,则检查/失败构建管道
我想确保,如果开发人员忘记增加他们正在开发的包中的版本号,构建管道中会出现警告或失败。 目前我们有 NuGet arti...