[英]Stop Nuget from adding the relative path to the .csproj file
我遵循了在堆栈溢出上找到的几篇关于“nuget.config”文件(在解决方案旁边)的创建/修改的建议。 尝试为“Packages”文件夹设置默认位置时,这对我来说似乎是半工作。
请参阅下面的“nuget.config”文件。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositoryPath" value="$(SolutionDir)\packages" />
</config>
</configuration>
这就是新添加 nuget 包时最终放入 .csproj 文件的内容......
<HintPath>..\..\..\$(SolutionDir)\packages\SomeNugetPackage.1.1.1.0\lib\SomeNugetPackage.dll</HintPath>
似乎正在使用“nuget.config”,因为它确实注入了我的$(SolutionDir)\\packages
部分。 它只是预先添加了相对路径,从而破坏了它! 有什么办法可以阻止添加..\\..\\..\\
部分? 我不想要任何相对路径。
任何建议将被认真考虑。
提前致谢
有什么办法可以阻止......\\ 部分被添加? 我不想要任何相对路径。
恐怕到目前为止你得不到你想要的。
该hintpath
将默认总是通过的NuGet机制使用相对路径。 很抱歉,这是一个 nuget 机制,我们无法修改该 nuget 机制。
不管你怎么设置repositoryPath
的值,即使是c:\\test\\packages
这样的绝对路径地址,也会根据当前的xxx.csproj
地址定位repositoryPath
的值,然后分配相对路径安装 nuget 包时添加到每个 nuget 包的提示路径。
所以在目前的情况下,我们不能对hintpath使用绝对路径。
此外, $(SolutionDir)
由csproj
文件而不是nuget.config
,因此它将失去效力。
此外,如果你还想要这个,我认为你应该在我们的 DC 论坛上推荐一个功能。 团队会仔细考虑你的想法。 完成后,您可以在此处分享链接,包括我们在内的任何人都将对其进行投票,以便获得Microsoft 的更多关注。
所有这些都将帮助您尽快获得您想要的结果。
在执行此操作之前,请备份您的项目。
作为建议,您可以使用PackageReference Nuget 管理格式。 默认情况下,它将直接从全局缓存(c:\\users\\current user.nuget\\packages)引用包。 它不会涉及任何相对路径,您不必担心提示路径。
只需右键单击packages.config
文件-->单击migrate packages.config to packagesreference
。
如果它不能满足你的质量要求,你可以忽略它。
我的解决方案是将源代码放在另一个驱动器下; 例如我将源代码放在 D: 驱动器下,将包文件夹放在 C: 驱动器下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.