繁体   English   中英

阻止 Nuget 将相对路径添加到 .csproj 文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM