VSTO部署MSI时System.Memory.dll文件找不到错误求助
VSTO Excel应用MSI安装程序构建错误
我按照微软官方指南为小型Excel应用构建MSI安装程序,初始构建与重建均正常,但只要对安装程序做微小修改(如更改制造商名称),或关闭并重新打开项目及Visual Studio,就会触发以下预构建验证错误:
------ Starting pre-build validation for project 'project Setup' ------
ERROR: Unable to find source file 'C:\Users\xxxx\source\repos\project Setup\System.Memory.dll' for assembly 'System.Memory.dll', located in '[TARGETDIR]'
------ Pre-build validation for project 'project Setup' completed ------
尝试重建Setup项目始终失败,即使实际项目与Setup项目无任何变更,求解决思路。
解决思路
- 修正文件引用路径:打开Setup项目的文件系统视图,定位
System.Memory.dll的引用,确认其源路径指向主项目的输出目录(如bin\Release或bin\Debug),而非Setup项目自身的目录。若路径错误,手动更新为正确路径。 - 重置依赖项引用:从Setup项目中删除
System.Memory.dll的引用,再重新添加主项目输出目录中的该文件,重置可能已损坏的关联。 - 清理后重新构建:依次清理主项目和Setup项目的构建输出(右键项目→清理),删除解决方案下的
obj和bin文件夹,先构建主项目,再构建Setup项目。 - 修复NuGet包:检查主项目中
System.MemoryNuGet包的安装状态,尝试卸载后重新安装,确保包文件完整且能正常输出DLL到主项目目录。 - 调整项目构建顺序:在解决方案属性中设置Setup项目依赖于主项目,确保主项目先完成构建,避免Setup项目引用未生成的文件。
- 临时禁用预构建验证:右键Setup项目→属性→构建,取消勾选“启用预构建验证”,此为临时绕过方案,建议找到根本原因后恢复验证。
内容的提问来源于stack exchange,提问作者FlyingLizard3
相关产品推荐
相关产品推荐

