【发布时间】:2020-08-07 16:46:45
【问题描述】:
简而言之,我希望能够以编程方式修改 .csproj 文件。
我正在开发一个应用程序,该应用程序将 nuget 包替换为其实际项目参考。这是应用程序用于调试目的。我们在解决方案文件中添加了大量的软件包。为此,我读取了一个 csproj 文件并应用一个正则表达式来查找指定的 nuget 包引用并添加一个项目引用。这部分工作正常,但它不再挑选包裹了。
以上可以使用dotnet 命令完成,但使用它我无法替换旧版本。
是否有任何可用的 Microsoft nuget 包可以读取 csproj 文件中的包引用?
here 提出了类似的问题,但 Build.Engine 在最新版本中不可用。
【问题讨论】:
-
这里有一些不清楚的地方,为什么要这么做,你用的是什么包格式,你的代码是什么样子的
-
我正在使用正则表达式来查找包及其版本
PackageReference Include=\" packageName ".*Version=\""(\S*)"" -
使用上面的正则表达式我搜索包引用并将其替换为以下字符串
<ProjectReference Include=\"{packageProjectPath}\" />它正在用项目引用替换包 -
我现在正在做另一个项目。一两天后,我会回来并进行验证。感谢您提供的解决方案。 :)
-
我已经使用了这些包并且能够检索包引用。 Microsoft.Build.Utilities.Core Microsoft.Build
标签: c# .net-core nuget visual-studio-2019 projects-and-solutions