当一个用户尝试运行应用程序时,我们的ClickOnce应用程序将报告:
无法安装或运行应用程序。该应用程序需要GAC中的stdole版本7.0.3300.0。
有趣的是,GAC (C:\Windows\assembly)没有安装stdole。我怎样才能把它带到那里呢?
我们使用的是.NET 3.5,它已安装在此计算机上。
发布于 2009-02-18 15:32:39
所以结果是.NET文件被复制到了C:\Program Files\Microsoft.NET\Primary Interop Assemblies\。但是,它们从未在GAC中注册过。
我最终手动将C:\Program Files\Microsoft.NET\Primary Interop Assemblies中的文件拖到C:\windows\assembly上,然后应用程序就可以在那台有问题的机器上工作了。您也可以使用Gacutil以编程方式完成此操作。
因此,在安装过程中.NET似乎发生了一些事情,但这似乎解决了这个问题。我希望这对其他人有帮助!
发布于 2009-02-17 19:42:27
尝试转到项目属性中的Publish选项卡,然后选择Application Files按钮。然后设置以下属性:
Include
之后,您需要重新发布您的应用程序。
如果引用具有CopyLocal=true,则引用将与应用程序一起发布。如果引用具有CopyLocal=false,则该引用将被标记为先决条件。这意味着在安装ClickOnce应用程序之前,必须在客户端的GAC中安装程序集。
有些程序集由于Visual Studio安装而被安装到GAC中,而不是由于.NET框架安装。这可能是你的情况。
发布于 2014-10-01 05:41:33
就我的情况而言,我解决了这个问题,转到项目属性中的发布文件选项卡,然后选择应用程序文件按钮。然后只需:
注意:在应用此解决方案之前,请确保您已经(和我一样)检查了解决方案的所有项目,并且没有找到对stdole.dll程序集的引用。
1-定位stdole.dll文件;
2-将其发布状态更改为Exclude
3-在此之后,您需要重新发布您的应用程序。
此问题发生在从Visual Studio 2010迁移后的Visual Studio 2012上。
希望能有所帮助。
https://stackoverflow.com/questions/558361
复制相似问题