我有一个解决方案,它是一个 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/