c# - 为什么要在这里寻找 VsixUtil.exe?

标签 c# visual-studio vsix

我有一个解决方案,它是一个 VS 扩展,可以编译为 VSIX。我删除了我的包文件夹,构建了解决方案,但出现错误... 指定的任务可执行位置“D:\git\QueryFirst\packages\Microsoft.VSSDK.BuildTools.15.0.26201\tools\VSSDK\bin\VsixUtil.exe”无效。

该文件夹存在,但果然 VsixUtil.exe 不在其中。我用 nuget 安装了 VsixUtil,但它没有转到那个位置。为什么我的解决方案在那个位置寻找 VsixUtil。我可以将它指向其他地方吗?或者安装在那里?

我使用的是 VS 2017 企业版。

最佳答案

不应单独下载/安装 VsixUtil.exe 实用程序。您用来下载的 NuGet 包不是 Microsoft 或 VisualStudioExtensibility 的“官方”包。

显然您的项目中两个 VSSDK 之间的版本不匹配:

  • 该项目正在使用最新的 Microsoft.VsSDK.targets 文件,该文件使用 VsixUtil 任务:
  <UsingTask TaskName="VsixUtil" AssemblyFile="$(VsSDKAssemblyFile)" />
  • 但它会转到没有该任务所需的 VsixUtil.exe 文件的旧 VSSDK (Microsoft.VSSDK.BuildTools.15.0.26201) 的文件夹。

升级项目的 Microsoft.VSSDK.BuildTools NuGet 包以使用最新版本 15.8.x(15.8.3252 或 15.8.3247),该版本在文件夹 tools\vssdk\bin 中包含 VsixUtil.exe。

关于c# - 为什么要在这里寻找 VsixUtil.exe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52724502/

相关文章:

visual-studio-2012 - 在 Visual Studio Express 2012 for Window8 Desktop 中添加扩展

asynchronous - 如何在 VS2019 的异步扩展中获取 ShellSettingsManager?

c# - IInvokeProvider 命名空间?

c# - 浮点值默认为 1 或 0

c# - 创建一个 API 来处理对多个 API 的调用以进行集成是否是一种好的做法

wpf - 使用 Visual Studio 指定应用程序的图标

c# - 最合适的数据访问方式

c++ - 不静态链接到 VC CRT 的原因有哪些?

visual-studio - Isolated COM 和 COM 的免注册 DLL 之间的区别?

安装 VSIX 的 NuGet 包