自从在我们的构建服务器上更新了Visual Studio构建工具到17.2(我们之前有17.1.6),我们不能再构建VSTO项目了。
得到以下错误:
"D:6svsto-test.sln" (default target) (1) ->
"D:6ssrcExcelAddIn1ExcelAddIn1.csproj" (default target) (2) ->
(ResolveAssemblyReferences target) ->
C:Program Files (x86)Microsoft Visual Studio2022BuildToolsMSBuildCurrentBinamd64Microsoft.Common.CurrentVersion.targets(2302,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.Office.Tools.Common.v4.0.Utilities, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [D:6ssrcExcelAddIn1ExcelAddIn1.csproj]
我仍然可以使用Visual Studio Enterprise或MSBuild命令在我的本地开发机器上构建它们。
确保在安装Visual Studio时安装了VSTO。你也要避免从COM选项卡添加你的目标Office应用程序(在你的例子中是Excel)作为参考,除非Office安装在你的构建服务器上。
我想我找到问题了:
从Visual Studio 2022的Buildtools版本17.2开始,文件C:Program Files (x86)Microsoft Visual Studio2022BuildToolsMSBuildCurrentBinAssemblyFolders.config
丢失了。
此文件包含程序集的路径,该路径以前无法找到(Microsoft.Office.Tools.Common.v4.0.Utilities
,…)。
我的本地安装的Visual Studio Enterprise 202217.2以及安装Visual Studio 2022的Buildtoolsprior17.2同时安装AssemblyFolders.config
文件,因此没有问题。