如何通过 nuget powershell 脚本重新加载 Visual Studio 项目

2023-12-03

在解决方案资源管理器中,“DependentUpon”项目项通常作为其他项目的子项(例如 web.config / web.Debug.config)被禁用。 我遇到的问题是,当在包安装时通过 nuget/powershell 动态添加项目时,解决方案资源管理器不会重新加载项目,因此项目不会显示为依赖项。手动关闭并重新打开解决方案或卸载/重新加载项目可以解决该问题。 我想将项目重新加载作为 install.ps1 powershell 脚本的一部分进行自动化,但当我这样做时,我会收到“项目已卸载”错误,并且 nuget 会回滚安装。我认为这是因为我知道如何获取“重新加载”上下文菜单的唯一方法是首先卸载项目。

我正在寻找在此调用后面调用的对象。我想如果我可以直接执行,我就不必先卸载项目了。

$dte.ExecuteCommand("Project.ReloadProject")

这是在解决方案资源管理器中卸载/重新加载项目的完整代码

# Reload a project thru dte/SolutionExplorer Window 
# using Unload and Reload Context Menus.

$project = Get-Project
$shortpath = $dte.Solution.Properties.Item("Name").Value + "\" + $project.Name

#following GUID = Constants.vsWindowKindSolutionExplorer
#magic 1 = vsUISelectionType.vsUISelectionTypeSelect
$dte.Windows.Item("{3AE79031-E1BC-11D0-8F78-00A0C9110057}").Activate()
$dte.ActiveWindow.Object.GetItem($shortpath).Select(1)
$dte.ExecuteCommand("Project.UnloadProject")
$dte.ExecuteCommand("Project.ReloadProject")

我通过“触摸”项目文件并因此触发 Visual Studio 提示用户在包管理器关闭后重新加载修改后的项目来解决此问题。所以我的 Install.ps1 文件如下所示:

param($installPath, $toolsPath, $package, $project)

# if there isn't a project file, there is nothing to do
if (!$project) { return }

# Do some stuff here

$project.Save()

# Touch the file to force a project reload
$(get-item $project.FullName).lastwritetime=get-date
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过 nuget powershell 脚本重新加载 Visual Studio 项目 的相关文章

  • Windows PowerShell 查找文件中的重复行

    我需要使用 powershell 查找文本文件中的重复值 假设文件内容是 Apple Orange Banana Orange Orange 期望的输出应该是 Orange Orange 您还可以使用 Group Object cmdlet
  • PowerShell:使用 Invoke-Expression 管理错误

    我尝试弄清楚如何确定使用 Invoke Expression 的命令抛出是否失败 即使变量 LASTEXITCODE 或 ErrorVariable 也对我没有帮助 例如 PS C gt cmd cat c xxx txt 使用 Invok
  • IntelliSense:对象具有与成员函数不兼容的类型限定符

    我有一个名为 Person 的类 class Person string name long score public Person string name long score 0 void setName string name voi
  • Powershell Invoke-SSHCommand:使用“1”个参数调用“EndExecute”时出现异常

    我正在尝试通过 powershell 中的 Posh SSH 模块连接到 Netscaler SDX 服务器 以搜索特定文件 然后下载它 如果我用 putty 连接到服务器 它就可以工作 然后我可以输入 shell 来打开普通的 bash
  • 隐藏powershell输出

    我有以下脚本 param 参数 强制 true 字符串 dest New Item force path dest 1 itemtype directory New Item force path dest 2 itemtype direc
  • Powershell 中的反斜杠

    为什么 split 参数的字符串需要两个反斜杠 而 join 参数的字符串只需要一个反斜杠 反引号是 Powershell 中的转义字符 字符前面的反斜杠有什么作用 path C folder test unit1 testing resu
  • 如何将 Visual-Studio 2010 切换到 c++11

    我是 c 编程新手 我想尝试 c 11 新功能 那么我要问的是如何切换 Visual studio 2010 才能编译 c 11 源代码 你可以参考这个表 VC10 中的 C 0x 核心语言功能 表格 http blogs msdn com
  • 拖放到 Powershell 脚本

    我以为我已经找到了这个问题的答案 但我玩得越多 我就越发现它是 Powershell 的设计缺陷 我想拖放 或使用发送到机制 将多个文件和 或文件夹作为数组传递到 Powershell 脚本 测试脚本 Test ps1 param stri
  • Visual Studio 2010 中的 GTK#

    我一整天都在尝试让 GTK 在 Windows Server 2008 R2 x64 上的 Visual Studio 2010 中工作 以便我可以开始编写漂亮的跨平台 GUI 应用程序 但我对 C 有点陌生 我有一个世界的麻烦 我安装了最
  • “Microsoft.AspNet.Server.Kestrel”不包含适合入口点的静态“Main”方法

    我正在尝试运行最新的Asp Net 5 个示例 https github com aspnet Home 当前为 1 0 0 rc1 update1 来自 Windows 10 上的 powershell 我将活动和默认 DNX 设置为 C
  • 为管道重用自定义对象时出现意外结果

    A while ago I changed my Join Object https stackoverflow com a 45483110 1701026 cmdlet which appeared to cause a bug whi
  • 更新除一个之外的所有包

    有没有办法更新除一个之外的所有软件包 例如 当我创建新项目时 我需要更新除 jQuery 之外的所有包 它应该保持相同的版本 您可以编写一个自定义脚本来更新包 如下所示 并在包管理器控制台中执行它 list Get package proj
  • 从 Powershell 更新计划任务脚本

    我正在尝试编写一个每天运行一次的 Powershell 脚本 它将执行的众多功能之一是确保脚本本身是最新的 我的问题是 由于我对脚本进行了版本控制 因此我需要更新从脚本中创建的计划任务 我在这里考虑了两种不同的方法 其中我也无法弄清楚 我最
  • CRT 虚拟析构函数

    我今天遇到了由于我的 dll 和实际项目中的不同 CRT 设置 MTd MDd 导致的堆损坏 我发现奇怪的是 只有当我将 dll 中的析构函数设置为虚拟时 应用程序才会崩溃 有一个简单的解释吗 我知道我无法释放不在堆上的内存 但是当我将析构
  • Invoke-Sqlcmd 运行脚本两次

    我遇到了一个非常奇怪的问题并且可以重复 基本上 我使用invoke sqlcmd通过使用 inputfile来调用脚本文件 但是如果脚本文件存在一些执行错误 例如插入到列不应为空的表中 则脚本文件将被执行两次 我也可以从探查器中看到这两个执
  • MSVC10 /MP 在项目中跨文件夹构建非多核

    我希望有人指出我们所遇到的错误或解决方法 使用 MP 编译项目时 似乎仅同时编译同一文件夹中的文件 我使用进程资源管理器来滑动命令行并确认行为 项目过滤器似乎对同时编译的内容没有影响 项目结构disk Folder project vcxp
  • Start-Job 输出去了哪里?

    W gt job start job Write Output hi there throw an error Wait Job W gt job select State Failed HasMoreData True StatusMes
  • 获取文件夹及其子文件夹中最长文件路径的长度

    我正在寻找一个可以从命令行 批处理 PowerShell 运行的脚本 该脚本将遍历文件夹及其子文件夹 并返回一个数字 该数字是最长文件路径的长度 我已经看到了一些批处理和 PowerShell 脚本 例如 如何在 Windows 中查找路径
  • 如何从 PowerShell 指定应用程序池身份用户和密码

    我在自动化 Web 应用程序设置和使用应用程序池标识适当配置 IIS 方面遇到了很多困难 我在用 PowerShell 编写的 Web 应用程序部署脚本中执行此操作 我的要求是我需要 PowerShell 脚本将应用程序池身份用户设置为特定
  • 从输出中删除空行

    我有这个脚本 for true Write Host Get Date UFormat Y m d H M S ping n 1 10 10 50 203 Select String SimpleMatch Pinging Context

随机推荐