我正在尝试将下载的库保存到外部程序包。
所以我在解决方案文件中添加了create .nugetconfig文件。它不在.nuget文件夹中,因为它似乎不再起作用。
除了Pack功能之外,一切都错了
<Target Name="Pack">
<NuGet.NuGetPack ToolPath="$(NgetToolPath)" File="$(NuspecPackage)"/>
</Target>
错误消息是:“ NuGet.Config无效的XML。路径:'C:\ BaseFolder \ MySolution \ NuGet.Config'。根元素丢失。“
这很奇怪,因为其他所有目标均有效。 NuGet.Config应该在BaseFolder下,而不是MySolution下。任何想法为何NuGet.Pack会在MySolution下查找?不幸的是,我无法指定配置文件的位置。 NuGet.NuGetRestore和NuGet.NuGetInstall可以指定配置文件!
令人沮丧,任何帮助。
这没有道理。为什么这样做?
这很奇怪,因为其他所有目标均有效。和NuGet.Config应该在BaseFolder而不是MySolution下。任何想法为什么NuGet.Pack在MySolution下寻找?
到目前为止,要对您的组件进行一些操作,可以在解决方案文件夹下创建一个新的Nuget.config
文件(它是由nuget机制设计的)。它将应用于解决方案子目录中的所有项目。
您可以参考this link了解有关nuget.config
文件的更多信息。
Besides,您不必使用NuGet.NuGetPack
来更改外部程序包,它太旧了。您可以将这些节点添加到新的Nuget.config
文件中进行更改:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositoryPath" value="C:\External" /> //change the path of packages of the solution
</config>
<packageRestore>
<add key="enabled" value="true" /> //enable or disable package restore
<add key="automatic" value="true" />
</packageRestore>
</configuration>
有关自定义nuget配置设置的更多信息,您可以参考this link。
[Note,完成这些操作后,应关闭VS实例,然后重新启动它以启用此新文件。
另外,解决方案文件夹下的nuget.config
将作用于当前解决方案。
并且如果要对PC上的所有解决方案采取行动,则可以将nuget.config
文件放在创建所有解决方案的根目录中,以便可以将其应用于这些解决方案,
如果您希望它适用于PC的当前用户的所有项目和解决方案,则应将它们添加到global nuget.config文件中:
C:\Users\xxx<user account>\AppData\Roaming\NuGet\NuGet.Config