Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net ClickOnce应用程序不适用于Office 2007_.net_Exception_Clickonce_Office 2007 - Fatal编程技术网

.net ClickOnce应用程序不适用于Office 2007

.net ClickOnce应用程序不适用于Office 2007,.net,exception,clickonce,office-2007,.net,Exception,Clickonce,Office 2007,我是使用ClickOnce进行部署的.net应用程序的开发人员。我已经部署了60多次,计算机在下载最新版本时没有遇到任何问题。但是,当我今天早上部署时,当安装了Office 2007的计算机尝试启动应用程序时,会出现以下错误: 无法安装或运行应用程序。该应用程序要求首先在全局程序集缓存(GAC)中安装程序集STDOL版本7.0.3300.0。请与您的系统管理员联系 但是,使用Office2003的计算机可以毫无问题地启动应用程序 有人对解决这个问题有什么建议吗?我不确定您的具体问题,但Offic

我是使用ClickOnce进行部署的.net应用程序的开发人员。我已经部署了60多次,计算机在下载最新版本时没有遇到任何问题。但是,当我今天早上部署时,当安装了Office 2007的计算机尝试启动应用程序时,会出现以下错误:

无法安装或运行应用程序。该应用程序要求首先在全局程序集缓存(GAC)中安装程序集STDOL版本7.0.3300.0。请与您的系统管理员联系

但是,使用Office2003的计算机可以毫无问题地启动应用程序


有人对解决这个问题有什么建议吗?

我不确定您的具体问题,但Office 12版本的stdole库与您使用Office 2003时的版本不同(而且根据我的经验,并不总是向后兼容)

我们在Office DLL周围使用一个包装器来使用Office提供的邮件合并功能,信不信由你,Microsoft再次更改了接口,因此我们必须编译两个不同的包装器,并针对两个不同的Office版本进行链接。简而言之,一个皮塔

在微软没有提供托管库之前,我不会再对微软office进行编码

尽管如此,我认为你应该在你的计算机上安装Office12并从那里进行测试。你会注意到所有的办公用品都是不同的。如果您可以在Office 12下使用它,它可能与Office 11(也称为2003)的计算机兼容,但不要指望它,在部署任何东西之前先对它进行测试


我不认为这与ClickOnce有任何关系;这更像是GAC/OfficeVersion的问题。另外,检查Vista可能存在的问题,因为UAC和DEP的东西往往会干扰“旧”应用程序的工作方式

据我所知,安装Office2k7后,此版本的stdole将被删除。您可以通过gacutil在所有目标机器上单独安装它,或者通过ClickOnce软件包引导程序将其包括在内。现在在mac上,所以我不能测试

我们公司推出Office2007后,我也遇到了同样的问题。我的第一个快速解决方案是将stdole复制到给出问题的两台计算机的GAC

经过调查,我发现我们的应用程序实际上并没有使用stdole。它可能在我测试COM dll时添加了引用,我在测试后删除了COM dll。因此,我的解决方案只是将其从“发布”选项卡下的“应用程序文件”对话框中排除。所以首先确保你需要它

据我所知,当您参考一些COM DLL(如Office)时,这是必需的。如果你是这样的话,我发现一些帖子说,通过将“应用程序文件”对话框上的“发布”状态从“先决条件”更改为“包含”,并将“下载”组从“无”更改为“必需”,问题就解决了。在我的例子中,默认情况下添加stdole作为先决条件。

它并不是真正的“删除”afaik。我在我的Office12机器上有它,但它和Office11机器不一样。