.Net Core Visual Studio NuGet.Config 配置参考

Visual Studio 2022 NUGET NU1301 无法加载源 基础连接已关闭:无法建立SSL / TLS安全通道的信任关系;根据验证过程,远程证书无效,参考文章:https://blog.csdn.net/hefeng_aspnet/article/details/145780081
NuGet 行为由不同 NuGet.Config 或 nuget.config 文件中的设置来控制,如常见 NuGet 配置中所述。
nuget.config 是包含顶级 <configuration> 节点的 XML 文件,而该节点包含本主题中所述的节元素。 每个部分均包含零个或多个项。 请参阅示例配置文件。 设置名称不区分大小写,并且值可以使用环境变量。
提示
在项目存储库的根目录中添加 nuget.config 文件。 这被认为是一种最佳做法,因为它促进了可重复性,并可确保不同的用户具有相同的 NuGet 配置。 可能需配置 clear 元素以确保不应用任何特定于用户或计算机的配置。 详细了解如何应用设置。
配置节
包含杂项配置设置,可使用 nuget config 命令设置。
dependencyVersion 和 repositoryPath 仅适用于使用 packages.config 的项目。 globalPackagesFolder 仅适用于使用 PackageReference 格式的项目。
| 密钥 | 值 |
|---|---|
dependencyVersion(仅限于 packages.config) | 包安装、还原和更新的默认 DependencyVersion 值(未直接指定 -DependencyVersion 开关时)。 NuGet 包管理器 UI 也使用此值。 值为 Lowest、HighestPatch、HighestMinor、Highest。 |
| globalPackagesFolder | 默认全局包文件夹的位置。 默认值为 %userprofile%\.nuget\packages (Windows) 或 ~/.nuget/packages (Mac/Linux)。 相对路径可在项目特定的 nuget.config 文件中使用。 此设置由优先的 NUGET_PACKAGES 环境变量覆盖。 |
repositoryPath(仅限于 packages.config) | 安装 NuGet 包的位置,而非默认的 $(Solutiondir)/packages 文件夹。 相对路径可在项目特定的 nuget.config 文件中使用。 |
| defaultPushSource | 如果操作未找到任何其他包源,则会标识应用作默认值的包源 URL 或路径。 |
| http_proxy http_proxy.user http_proxy.password no_proxy | 连接到包源时要使用的代理设置;http_proxy 应为 http://<username>:<password>@<domain> 格式。 密码已加密,且不能手动添加。 对于 no_proxy,该值是绕过代理服务器的域的列表(以逗号分隔)。 可将 http_proxy 和 no_proxy 环境变量交替用于这些值。 有关其他详细信息,请参阅 NuGet 代理设置 (skolima.blogspot.com)。 |
| maxHttpRequestsPerSource | 控制从 NuGet 发送到包依赖项解析和下载的每个包源的最大并行请求数。 dotnet.exe 的默认值为 Int32.MaxValue(从 HttpClientHandler.MaxConnectionsPerServer 属性派生)。 此设置不影响 Mac OS 的 dotnet.exe,因为已将限制设为 16 从而避免出现过多打开文件错误。 运行于 .NET Framework(例如 Visual Studio 和 nuget.exe)的 NuGet client tools 的默认值为 64(在 Windows 上)和 1(在 Mono 上)。 Packages.config 式项目的默认值被设为 Environment.ProcessorCount。 将 maxHttpRequestsPerSource 属性配置为小于默认值的值可能会影响 NuGet 性能。 |
| signatureValidationMode | 指定用于验证包安装和还原的包签名的验证模式。 值为 accept、require。 默认为 accept。 |
示例:
<config>
<add key="dependencyVersion" value="Highest" />
<add key="globalPackagesFolder" value="c:\packages" />
<add key="repositoryPath" value="c:\installed_packages" />
<add key="http_proxy" value="http://company-squid:3128@contoso.com" />
<add key="signatureValidationMode" value="require" />
<add key="maxHttpRequestsPerSource" value="16" />
</config>
bindingRedirects 节
在安装包时,配置 NuGet 是否执行自动绑定重定向。
| 密钥 | 值 |
|---|---|
| skip | 指示是否跳过自动绑定重定向的布尔。 默认值为 false。 |
示例:
<bindingRedirects>
<add key="skip" value="True" />
</bindingRedirects>
packageRestore 节
在生成期间控制包还原。
| 密钥 | 值 |
|---|---|
| enabled | 指示 NuGet 是否可执行自动还原的布尔。 还可以使用 True 的值设置 EnableNuGetPackageRestore 环境变量,而不是在配置文件中设置此密钥。 |
| automatic | 指示 NuGet 是否应在生成期间检查缺少的包。 |
示例:
<packageRestore>
<add key="enabled" value="true" />
<add key="automatic" value="true" />
</packageRestore>
解决方案节
控制解决方案的 packages 文件夹是否包括在源代码管理中。 此节仅适用于解决方案文件夹中的 nuget.config 文件。
| 密钥 | 值 |
|---|---|
| disableSourceControlIntegration | 指示在使用源代码管理时是否忽略包文件夹的布尔。 默认值为 false。 |
示例:
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
包源节
packageSources、packageSourceCredentials、apikeys、activePackageSource、disabledPackageSources、trustedSigners 和 packageSourceMapping 会共同配置在安装、还原和更新操作期间 NuGet 使用包存储库的方式。
nuget sources 命令通常用于管理这些设置,但用 nuget setapikey 命令来管理的 apikeys 以及用 nuget trusted-signers 命令来管理的 trustedSigners 除外。
请注意,nuget.org 的源 URL 是 https://api.nuget.org/v3/index.json。
packageSources
列出所有已知包源。 在还原操作期间以及针对采用 PackageReference 格式的所有项目,均会忽略该顺序。 对于使用 packages.config 的项目,NuGet 遵循针对安装和更新操作的源的顺序。
| XML 特性 | 目的 |
|---|---|
| 键 | (要分配给包源的名称) |
| 值 | 包源的路径或 URL。 |
| protocolVersion | 要使用的 NuGet 服务器协议版本。 当前版本为“3”。 当未指向以 .json 结尾的包源 URL(例如 https://api.nuget.org/v3/index.json)时,默认为版本“2”。 在 NuGet 3.0 及以上版本中受到支持。 有关版本 3 协议的详细信息,请参阅 NuGet 服务器 API。 |
| allowInsecureConnections | 如果为 false 或未指定,则当源使用 http 而不是 https 时,NuGet 会发出警告。 如果你确信与此源的通信绝不会面临拦截攻击的风险,则可将该值设为 true 以不显示此警告。 在 NuGet 6.8 及以上版本中受到支持。 |
| disableTLSCertificateValidation | 此配置属性允许禁用 HTTPS 服务器的 SSL/TLS 证书验证。 如果设置为 true,服务器将忽略与 SSL/TLS 证书相关的任何错误(例如,过期证书或自签名证书),并在未进行验证的情况下建立连接。 在 NuGet 6.11 及以上版本中受到支持。 |
示例:
<packageSources>
<clear />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<add key="Contoso" value="https://contoso.com/packages/" />
<add key="http-source" value="http://httpsourcetrusted/" allowInsecureConnections="true" />
<add key="Invalid-certificate-https-source" value="https://httpsSourceTrusted/" disableTLSCertificateValidation="true" />
<add key="Test Source" value="c:\packages" />
</packageSources>
备注
使用信任的包源。
备注
使用 CLI 时,可使用 RestoreSources MSBuild 属性或 --source(.NET CLI) | -Source(NuGet CLI) 以覆盖 NuGet.config 中定义的 <packageSources>。
提示
当给定节点中存在 <clear /> 时,NuGet 将忽略之前为该节点定义的配置值。 详细了解如何应用设置。
auditSources
列出所有已知的审核源,NuGet 审核将在还原期间使用。 如果未提供审核源,则还原将使用包源并抑制 NU1905。 auditSources 已添加至 NuGet 6.12。
审核源支持与 packageSources(protocolVersion、allowInsecureConnections)相同的属性,使用 packageSourceCredentials 配置需要身份验证的源,与 packageSources 的方法相同。
示例:
<auditSources>
<clear />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
</auditSources>
packageSourceCredentials
存储源的用户名和密码,通常通过 nuget sources 使用 -username 和 -password 开关指定。 默认情况下密码会进行加密,除非还使用了 -storepasswordincleartext 选项。 (可选)可使用 -validauthenticationtypes 开关指定有效的身份验证类型。
| 密钥 | 值 |
|---|---|
| username | 纯文本形式的源用户名。 注意:环境变量可用于提升安全性。 |
| password | 源的加密密码。 加密的密码仅在 Windows 上受到支持,且只能在同一计算机上使用时通过执行原始加密的同一用户来解密。 |
| cleartextpassword | 源的未加密密码。 注意:环境变量可用于提升安全性。 |
| validauthenticationtypes | 此源的有效身份验证类型的逗号分隔列表。 如果服务器公布 NTLM 或协商,并且你必须使用基本机制发送凭据(例如,在本地 Azure DevOps Server 中使用 PAT 时),则将此项设置为 basic。 其他有效值包括 negotiate、kerberos、ntlm 和 digest,但这些值不太可能有用。 |
警告
强烈建议不要以明文形式存储密码。 请注意,仅 Windows 支持加密密码。 此外,加密密码只能在同一台计算机,由最初对其进行加密的同一用户解密。 有关安全地管理凭据的详细信息,请参阅使用私有源的包的安全最佳做法。
提示
如果为 password 传递了非加密密码,则会出现错误消息“参数不正确”。
示例:
在配置文件中,<packageSourceCredentials> 元素包含每个适用源名称的子节点(名称中的空格被替换为 _x0020_)。 也就是说,对于名为“Contoso”和“测试源”的源,使用加密密码时,配置文件包含以下内容:
<packageSourceCredentials>
<Contoso>
<add key="Username" value="user@contoso.com" />
<add key="Password" value="..." />
</Contoso>
<Test_x0020_Source>
<add key="Username" value="user" />
<add key="Password" value="..." />
</Test_x0020_Source>
</packageSourceCredentials>
此外,还可提供有效的身份验证方法。
<packageSourceCredentials>
<Contoso>
<add key="Username" value="user@contoso.com" />
<add key="Password" value="..." />
<add key="ValidAuthenticationTypes" value="basic" />
</Contoso>
<Test_x0020_Source>
<add key="Username" value="user" />
<add key="Password" value="..." />
<add key="ValidAuthenticationTypes" value="basic, negotiate" />
</Test_x0020_Source>
</packageSourceCredentials>
使用存储在环境变量中的未加密密码时:
<packageSourceCredentials>
<Contoso>
<add key="Username" value="user@contoso.com" />
<add key="ClearTextPassword" value="%ContosoPassword%" />
</Contoso>
<Test_x0020_Source>
<add key="Username" value="user" />
<add key="ClearTextPassword" value="%TestSourcePassword%" />
</Test_x0020_Source>
</packageSourceCredentials>
使用未加密密码时:
警告
强烈建议不要以明文形式存储密码。
<packageSourceCredentials>
<Contoso>
<add key="Username" value="user@contoso.com" />
<add key="ClearTextPassword" value="33f!!lloppa" />
</Contoso>
<Test_x0020_Source>
<add key="Username" value="user" />
<add key="ClearTextPassword" value="hal+9ooo_da!sY" />
</Test_x0020_Source>
</packageSourceCredentials>
apikeys
存储使用 API 密钥身份验证的源的密钥,如使用 nuget setapikey 命令 设置。
| 密钥 | 值 |
|---|---|
| (源 URL) | 加密的 API 密钥。 |
示例:
<apikeys>
<add key="https://MyRepo/ES/api/v2/package" value="encrypted_api_key" />
</apikeys>
disabledPackageSources
标识当前已禁用的源。 可以为空。 除非在此部分禁用特定源,否则它们将被启用。
| 密钥 | 值 |
|---|---|
| (源名称) | 指示源是否禁用的布尔。 |
示例:
<disabledPackageSources>
<add key="Contoso" value="true" />
</disabledPackageSources>
<!-- Empty list -->
<disabledPackageSources />
在以上示例中,包源 Contoso 处于禁用状态,因而不会用于下载或安装包。
activePackageSource
(仅限于 2.x;3.x+ 中已弃用)
标识到当前活动的源或指示所有源的聚合。
| 密钥 | 值 |
|---|---|
(源名称)或 All | 如果密钥是源的名称,则值为源路径或 URL。 如果为 All,值应为 (Aggregate source),从而组合其他未禁用的所有包源。 |
示例:
<activePackageSource>
<!-- Only one active source-->
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<!-- All non-disabled sources are active -->
<add key="All" value="(Aggregate source)" />
</activePackageSource>
trustedSigners 部分
存储用于在安装或还原时允许使用包的可信签名者。 当用户将 signatureValidationMode 设为 require 时,此列表不能为空。
可使用 nuget trusted-signers 命令更新此部分。
架构:
可信签名者拥有一组 certificate 项,它们可用于登记标识给定签名者的所有证书。 可信签名者可为 Author 或 Repository。
可信存储库还会为存储库(必须为有效 https URI)指定 serviceIndex,且可选择性地指定以分号分隔的 owners 的列表,从而进一步限制在该特定存储库中受到信任的人员。
用于证书指纹的受支持哈希算法为 SHA256、SHA384 和 SHA512。
如果 certificate 将 allowUntrustedRoot 指定为 true,则在生成证书链以作为签名验证的其中一部分时,可将给定证书链接到不受信任的根。
示例:
<trustedSigners>
<author name="microsoft">
<certificate fingerprint="3F9001EA83C560D712C24CF213C3D312CB3BFF51EE89435D3430BD06B5D0EECE" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
<certificate fingerprint="AA12DA22A49BCE7D5C1AE64CC1F3D892F150DA76140F210ABD2CBFFCA2C18A27" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
<certificate fingerprint="566A31882BE208BE4422F7CFD66ED09F5D4524A5994F50CCC8B05EC0528C1353" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
</author>
<repository name="nuget.org" serviceIndex="https://api.nuget.org/v3/index.json">
<certificate fingerprint="0E5F38F57DC1BCC806D8494F4F90FBCEDD988B46760709CBEEC6F4219AA6157D" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
<certificate fingerprint="5A2901D6ADA3D18260B9C6DFE2133C95D74B9EEF6AE0E5DC334C8454D1477DF4" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
<certificate fingerprint="1F4B311D9ACC115C8DC8018B5A49E00FCE6DA8E2855F9F014CA6F34570BC482D" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
<owners>microsoft;aspnet;nuget</owners>
</repository>
</trustedSigners>
fallbackPackageFolders 部分
(3.5+) 提供一种预安装包方法,以便在回退文件夹中找到包时无需执行任何操作。 回退包文件夹的文件夹和文件结构与全局包文件夹完全相同:存在 .nupkg,且会提取所有文件。
此配置的查找逻辑为:
-
查看全局包文件夹以确定是否已下载包/版本。
-
查看回退文件夹以确定是否存在包/版本匹配项。
如果任一查找成功,则无需进行下载。
如果未找到匹配项,NuGet 则会先检查文件源再检查 http 源,然后下载包。
| 密钥 | 值 |
|---|---|
| (回退文件夹的名称) | 回退文件夹的路径。 |
示例:
<fallbackPackageFolders>
<add key="XYZ Offline Packages" value="C:\somePath\someFolder\"/>
</fallbackPackageFolders>
包源映射部分
packageSourceMapping 部分包含有助于 NuGet 包操作确定从何处下载包 ID 的详细信息。
此部分目前只能手动管理。
packageSourceMapping 部分只能包含 packageSource 部分。
packageSource
packageSourceMapping 部分的子部分。 包含一个映射,从而帮助 NuGet 确定是否应考虑此源来下载感兴趣的包。
| 密钥 |
|---|
| 在 packageSources 部分声明的包源的名称。 此密钥必须与包源的密钥完全匹配。 |
packageSourceMapping 下的 packageSource 部分由 key 进行唯一标识。
package
package 是 packageSource 部分的一部分。
| 模式 |
|---|
| 由包源映射的语法定义的模式。 |
示例:
<packageSourceMapping>
<packageSource key="contoso.com">
<package pattern="Contoso.*" />
</packageSource>
</packageSourceMapping>
packageManagement 部分
设置默认包管理格式,即 packages.config 或 PackageReference。 SDK 式项目始终使用 PackageReference。
| 密钥 | 值 |
|---|---|
| format | 指示默认包管理格式的布尔值。 如果为 1,则格式为 PackageReference。 如果为 0,则格式为 packages.config。 |
| disabled | 一个布尔值,指示是否在首次安装包时显示用于选择默认包格式的提示。 False 会隐藏该提示。 |
示例:
<packageManagement>
<add key="format" value="1" />
<add key="disabled" value="False" />
</packageManagement>
提示
当给定节点中存在 <clear /> 时,NuGet 将忽略之前为该节点定义的配置值。 详细了解如何应用设置。
使用环境变量
可以在 nuget.config 值中使用环境变量 (NuGet 3.4 +) 在运行时应用设置。
例如,如果 Windows 上的 HOME 环境变量设置为 c:\users\username,则配置文件中 %HOME%\NuGetRepository 的值解析为 c:\users\username\NuGetRepository。
请注意,即使在 Mac/Linux 上也必须使用 Windows 式环境变量(以 % 开头和结尾)。 在配置文件中使用 $HOME/NuGetRepository 则不会进行解析。 在 Mac/Linux 上,%HOME%/NuGetRepository 的值将解析为 /home/myStuff/NuGetRepository。
如果未找到环境变量,NuGet 会使用配置文件中的文本值。 例如,%MY_UNDEFINED_VAR%/NuGetRepository 会解析为 path/to/current_working_dir/$MY_UNDEFINED_VAR/NuGetRepository
下表显示针对 NuGet.Config 文件的环境变量语法和路径分隔符支持。
NuGet.Config 环境变量支持
| 语法 | 目录分隔符 | Windows nuget.exe | Windows dotnet.exe | Mac nuget.exe(在 Mono 中) | Mac dotnet.exe |
|---|---|---|---|---|---|
%MY_VAR% | / | 是 | 是 | 是 | 是 |
%MY_VAR% | \ | 是 | 是 | 否 | No |
$MY_VAR | / | No | No | No | No |
$MY_VAR | \ | No | No | No | 否 |
示例配置文件
以下 nuget.config 示例文件对包括可选设置的部分设置进行了说明:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<!--
Used to specify the default location to expand packages.
See: nuget.exe help install
See: nuget.exe help update
In this example, %PACKAGEHOME% is an environment variable.
This syntax works on Windows/Mac/Linux
-->
<add key="repositoryPath" value="%PACKAGEHOME%/External" />
<!--
Used to specify default source for the push command.
See: nuget.exe help push
-->
<add key="defaultPushSource" value="https://MyRepo/ES/api/v2/package" />
<!-- Proxy settings -->
<add key="http_proxy" value="host" />
<add key="http_proxy.user" value="username" />
<add key="http_proxy.password" value="encrypted_password" />
</config>
<packageRestore>
<!-- Allow NuGet to download missing packages -->
<add key="enabled" value="True" />
<!-- Automatically check for missing packages during build in Visual Studio -->
<add key="automatic" value="True" />
</packageRestore>
<!--
Used to specify the default Sources for list, install and update.
See: nuget.exe help list
See: nuget.exe help install
See: nuget.exe help update
-->
<packageSources>
<clear />
<add key="NuGet official package source" value="https://api.nuget.org/v3/index.json" />
<add key="MyRepo - ES" value="https://MyRepo/ES/nuget" />
</packageSources>
<!-- Used to store credentials -->
<packageSourceCredentials />
<!-- Used to disable package sources -->
<disabledPackageSources />
<!--
Used to specify default API key associated with sources.
See: nuget.exe help setApiKey
See: nuget.exe help push
See: nuget.exe help mirror
-->
<apikeys>
<add key="https://MyRepo/ES/api/v2/package" value="encrypted_api_key" />
</apikeys>
<!--
Used to specify trusted signers to allow during signature verification.
See: nuget.exe help trusted-signers
-->
<trustedSigners>
<author name="microsoft">
<certificate fingerprint="3F9001EA83C560D712C24CF213C3D312CB3BFF51EE89435D3430BD06B5D0EECE" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
<certificate fingerprint="AA12DA22A49BCE7D5C1AE64CC1F3D892F150DA76140F210ABD2CBFFCA2C18A27" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
<certificate fingerprint="566A31882BE208BE4422F7CFD66ED09F5D4524A5994F50CCC8B05EC0528C1353" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
</author>
<repository name="nuget.org" serviceIndex="https://api.nuget.org/v3/index.json">
<certificate fingerprint="0E5F38F57DC1BCC806D8494F4F90FBCEDD988B46760709CBEEC6F4219AA6157D" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
<certificate fingerprint="5A2901D6ADA3D18260B9C6DFE2133C95D74B9EEF6AE0E5DC334C8454D1477DF4" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
<certificate fingerprint="1F4B311D9ACC115C8DC8018B5A49E00FCE6DA8E2855F9F014CA6F34570BC482D" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
<owners>microsoft;aspnet;nuget</owners>
</repository>
</trustedSigners>
</configuration>
参考文章:nuget.config 文件参考 | Microsoft Learn
如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。
相关文章:
.Net Core Visual Studio NuGet.Config 配置参考
Visual Studio 2022 NUGET NU1301 无法加载源 基础连接已关闭:无法建立SSL / TLS安全通道的信任关系;根据验证过程,远程证书无效,参考文章:https://blog.csdn.net/hefeng_aspnet/article/details/145780081 NuGet 行为…...
深入剖析 OpenCV:全面掌握基础操作、图像处理算法与特征匹配
深入剖析 OpenCV:全面掌握基础操作、图像处理算法与特征匹配 一、引言二、OpenCV 的安装(一)使用 pip 安装(二)使用 Anaconda 安装 三、OpenCV 基础操作(一)图像的读取、显示与保存(…...
帧率和带宽
帧率,通常指的是每秒传输的帧数,帧就是一段数据包。 带宽则是指在单位时间内可以传输的数据量,通常以比特每秒来衡量 帧率在ROS2中可能指的是每秒发布的消息数量。也就是说,一个节点发布话题的频率。比如,每秒发布10次…...
Immich自托管服务的本地化部署与随时随地安全便捷在线访问数据
文章目录 前言1.关于Immich2.安装Docker3.本地部署Immich4.Immich体验5.安装cpolar内网穿透6.创建远程链接公网地址7.使用固定公网地址远程访问 前言 小伙伴们,你们好呀!今天要给大家揭秘一个超炫的技能——如何把自家电脑变成私人云相册,并…...
20250212:ZLKMedia 推流
1:资料 快速开始 ZLMediaKit/ZLMediaKit Wiki GitHub GitHub - ZLMediaKit/ZLMediaKit: WebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181/SRT server and client framework based on C++11 文档里面提供了各个系…...
IDEA中.gitignore未忽略指定文件的问题排查与解决
IDEA 中.gitignore 未忽略.env 文件的问题排查与解决 在使用 IntelliJ IDEA 进行项目开发时,合理利用.gitignore文件来管理版本控制是非常重要的。它能帮助我们排除一些不需要纳入版本管理的文件,比如包含敏感信息的.env文件。然而,有时我们会遇到一种情况:明明已经将.env…...
Apache-iotdb 基本概念
问题背景 定义(写得太好了!) root 是整个树状结构的父节点, CirroData-TimeS 有存储组、设备、测点等概念,数据在存储的时候,不同的存储组的数据是存储在不同的文件夹中的。上图中有 root.sgcc、root.ln两…...
CryptoJS库中WordArray对象支持哪些输出格式?除了toString() 方法还有什么方法可以输出吗?WordArray对象的作用是什么?
前言:这里只说js用的CryptoJS库里的相关内容,只用js来进行代码操作和讲解。 这里网上相关的帖子很少,不得已问了很长时间AI 想引用CryptoJS库情况分两种,一种是html引用,另一种是在Nodejs里引用。 一、引用CryptoJS库…...
Java 面试题 20250227
Java 中序列化与反序列化是什么? 序列化:将 Java 对象转化成可传输的字节序列格式(字节流、JSON、XML),以便于传输和存储。 反序列化:将字节序列格式数据转化成 Java 对象的过程。 1、为什么需要序列化和…...
springboot浅析
springboot浅析 什么是springboot? 实际上springboot就是一个给我们提供了快速搭建使用spring的一种方式,让我们省去了繁琐的xml配置。 为什么无需进行大量的xml配置,就是因为springboot是基于约定优于配置的思想,简单来说就是遵循…...
【文件基础操作】小笔记
Step1: 现在项目文件夹(我的项目叫做RunPony)下创建一个a.txt文本文件,手动写入一些数字,保存 Step2: 现在在main.c内写一个基本的文件处理的程序 Step3: 现在已经知道如何打开关闭文件,下一步要搞懂如何读取txt内的…...
SSL 证书是 SSL 协议实现安全通信的必要组成部分
SSL证书和SSL/TLS协议有着密切的关系,但它们本质上是不同的概念。下面是两者的区别和它们之间的关系的表格: 属性SSL/TLS 协议SSL证书英文全称SSL(Secure Sockets Layer),TLS(Transport Layer Security&am…...
AI问答-供应链管理:排队模型M/D/5/100/m/FCFS代表的含义是什么
在供应链管理中,排队模型M/D/5/100/m/FCFS代表的含义如下: M: 表示顾客到达时间间隔服从负指数分布(Markov,负指数分布具有无记忆性),即顾客到达是随机的,且到达时间间隔服从指数分…...
迁移学习策略全景解析:从理论到产业落地的技术跃迁
(2025年最新技术实践指南) 一、迁移学习的范式革命与核心价值 在人工智能进入"大模型时代"的今天,迁移学习已成为突破数据瓶颈、降低训练成本的关键技术。本文基于2025年最新技术进展,系统梳理六大核心策略及其在产业实…...
Linux驱动学习(四)--字符设备注册
上一节讲到的字符设备注册与销毁是通过cdev_init、cdev_add、cdev_del等函数分步执行的,本小节用一种更简单的方式,来注册字符设备 register_chrdev 如果major为0,该函数将动态的分配一个主设备号并且返回对应的值如果major > 0ÿ…...
30天开发操作系统 第24天 -- 窗口操作
一、窗口切换 1.0 前天开始我们的应用程序可以显示自己的窗口了,现在画面上到处都是窗口,我们急需能够 切换窗口顺序的功能,使得在需要的时候可以查 看最下面的窗口的内容。这个功能看起来不难,我们马上来实现它。 不过…...
Visual Studio 中 C/C++ 函数不安全警告(C4996)终极解决方案:分场景实战指南
问题描述 在 Visual Studio 中编写 C/C 代码时,使用 scanf、strcpy、fopen 等传统函数会触发以下警告: C4996: xxx: This function or variable may be unsafe. Consider using xxx_s instead. 根本原因: 这些函数缺乏缓冲区溢出检查&#…...
【Go】十八、http 调用服务的编写
http接口框架的搭建 这个http接口框架的搭建参考之前的全量搭建,这里是快速搭建的模式: 直接对已有的http模块进行复制修改,主要修改点在于 proto部分与api、router 部分,剩余的要针对进行修改模块名称。 接口的具体编写 在 a…...
提升数据洞察力:五款报表软件助力企业智能决策
概述 随着数据量的激增和企业对决策支持需求的提升,报表软件已经成为现代企业管理中不可或缺的工具。这些软件能够帮助企业高效处理数据、生成报告,并将数据可视化,从而推动更智能的决策过程。 1. 山海鲸报表 概述: 山海鲸报表…...
Materials Studio MS2020在linux系统上的安装包下载地址 支持centos Ubuntu rocky等系统
下载地址:MS2020-linux官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘 Materials Studio 2020是一款功能强大的材料科学计算模拟软件,以下是其详细介绍: 核心模块功能 CASTEP模块:采用平面波赝势方法,适用于周…...
ASP.NET MVC AJAX 文件上传
在ASP.NET MVC中实现文件上传功能,特别是在使用AJAX时,可以通过多种方式完成。以下是实现文件上传的几种常用方法,包括使用jQuery和原生AJAX。 方法1:使用jQuery的AJAX方法 1. 创建视图(View) 首先&#x…...
3.17 AI Agent 场景革命:解锁企业级应用的 15 个黄金赛道
AI Agent 场景革命:解锁企业级应用的 15 个黄金赛道 关键词:AI Agent 应用场景, 企业级智能体案例, 多模态 Agent 实现, 工具链自动化, 智能决策系统 1. 企业级 Agent 场景分类图谱 #mermaid-svg-UjUmmToEKigfdlFf {font-family:"trebuchet ms",verdana,arial,san…...
阿里云服务器宝塔终端如何创建fastadmin插件
1. 进入宝塔终端 2. cd / 进入根目录 3. FastAdmin 可以通过命令行创建一个插件,首先我们将工作目录切换到我们的项目根目录,也就是think文件所在的目录。 cd /var/www/yoursite/ 4.然后我们在命令行输入 php think addon -a mydemo -c create …...
待完成-swig将c语言程序转为python可用示例
待完成-swig将c语言程序转为python可用示例 deepseek 使用 SWIG(Simplified Wrapper and Interface Generator)可以将 C 语言程序库连接为 Python 可用的模块。以下是基本步骤: 1. 安装 SWIG 首先,确保你已经安装了 SWIG。你可以…...
【语音编解码】常用的基于神经网络的语音编解码方案对比
引言 随着实时通信与多媒体应用的爆炸式增长,传统语音编解码技术正面临带宽效率与音质保真的双重挑战。近年来,基于深度学习的神经编解码器突破性地将端到端架构、动态码率控制与可解释信号处理相结合,在3kbps以下超低码率场景仍能保持自然语…...
DeepSeek行业应用实践报告-智灵动力【112页PPT全】
DeepSeek(深度搜索)近期引发广泛关注并成为众多企业/开发者争相接入的现象,主要源于其在技术突破、市场需求适配性及生态建设等方面的综合优势。以下是关键原因分析: 一、技术核心优势 开源与低成本 DeepSeek基于开源架构…...
a_init: Unable to get log name. Retval:[-4]是什么故障
突然 接到监控告警 aix数据库内存使用超过阈值,请分析 先看内存使用吧 topas中能看到comp内存使用79%,非计算9% 看看哪个进程占用多呢 占用内存最高的20个进程(aix) ps aux |head -1 ; ps aux|sort -rn 4 |head -20看到rbal进程占用11%,比…...
利用node.js搭配express框架写后端接口(一)
Node.js 凭借其高效的非阻塞 I/O 操作、事件驱动架构以及轻量级的特点,成为了开发高性能服务器应用的热门选择。Express 框架作为 Node.js 上最流行的 Web 应用框架之一,以其简洁的 API 和丰富的中间件生态系统,极大地简化了 Web 后端开发流程…...
CentOS中shell脚本对多台机器执行下载安装
1.建立免密ssh连接 详情见这篇: CentOS建立ssh免密连接(含流程剖析)-CSDN博客 2.脚本编写 我这里只是简单写了个demo进行演示,如果服务器很多可以先暂存成文件再逐行读取host进行连接并执行命令 用node1去ssh连接node2和node…...
Go 语言内存池 (`sync.Pool`) 深度解析
Go 语言内存池 (sync.Pool) 深度解析 在高并发和性能敏感的应用中,频繁的内存分配和释放会带来显著的性能开销,并增加垃圾回收(GC)的压力。Go 语言通过 sync.Pool 提供了一种高效的对象复用机制,能够显著减少内存分配…...
