【发布时间】:2019-12-25 15:50:48
【问题描述】:
我正在构建一个 Nuget 包,其中包含一个带有 install.ps1 的工具文件夹。这个 Nuget 包依赖于 NugetPowerTools 包,它提供了一些 API 来处理项目及其属性。我在下面的 install.ps1 中粘贴了代码。
param($installPath, $toolsPath, $package, $project)
$buildProject = Get-MSBuildProject
$import = $buildProject.Xml.AddImport("Custom.Targets")
$buildProject.Save()
我有 2 个问题。
AddImport 将目标附加到末尾(即,在其他 Import 行之后)。我需要将我的 Import 作为第一行(因为我在此目标文件中有一些功能需要在其他文件之前执行)。是否可以先插入 Import (即我使用 Custom.Targets 的导入应该是项目文件中 Import 的第一项)?我找不到插入方法。
通过此 install.ps1 修改项目文件后,Visual Studio 中会弹出 /prompt,其中包含 4 个选项,即 SaveAs、Discard、Overwrite 和 Ignore。我想在没有此提示的情况下保存并覆盖项目文件/从我的 install.ps1 中弹出。这是为了避免用户的任何意外错误。为了克服这个问题,我在下面找到了一个链接,其中包含以下代码行,可以帮助我克服这个问题。
How can I reload a visual studio project thru a nuget powershell script
$(get-item $project.FullName).lastwritetime=get-date
但是现在,我得到另一个弹出/提示选项,包括重新加载、重新加载全部、忽略、全部忽略。有没有办法在没有这个提示的情况下重新加载这个项目?
请帮忙。
注意:如果有人可以在没有 NugetPowerTools 的情况下提供正确的语法,我可以不使用 NugetPowerTools。
【问题讨论】:
-
嗨佩里,抱歉耽搁了。我可以看到在nuget.org/packages/WiX.Toolset.UnofficialFork/# 发布的内容。当我查看这个包的 install.ps1 时,我可以看到一些类似于我正在寻找的代码。
-
我认为您已经从 nuget 的 install.ps1 powershell 脚本中得到了答案。如果您有任何其他问题,请随时告诉我们,我们很乐意为您提供帮助。
-
当然佩里。非常感谢您的及时帮助。
标签: nuget installation visual-studio-2019 projects-and-solutions