2011-06-10 97 views
1

我有一个引用dll'VMware.Vim.dll'的命令行控制台应用程序,但这有其他引用的dll像VimService41.dll,VimService20.dll等在我的本地保存在GAC中机。 我想部署此exe文件到任何计算机,并能够通过传递参数运行它。当我复制exe文件和VMware.Vim.dll时,它会抱怨其他缺少的dll,尽管它们不是发布文件夹的一部分。运行C#clickonce控制台应用程序

我试过了发布选项,并创建了一个ClickOnce应用程序来将它部署到我想执行exe的机器上。这创建了一个setup.exe和一个清单文件。当我运行它时,它会抱怨外部dll尚未添加到GAC中。

如何通过传递参数来运行此Clickonce控制台应用程序?

回答

0

我不认为这种情况适合点击一次。如果你需要安装修改gac的东西,那么你需要使用安装程序。

0

如果你可以找到所有的依赖关系,你可以包含它们(通过设置它们在VS中复制本地),然后你应该没有问题。

4

首先,你不通过运行EXE运行ClickOnce应用程序。如果你打算这么做,只需将你的版本的bin文件夹拷贝到机器上即可。如果您不需要执行自动更新,则使用ClickOnce浪费您的生活。

其次,您可以尝试跟踪所有需要的dll,并将它们包括在项目中。这包括所有的二级或三级依赖关系。将它们添加到您的项目中,将构建操作设置为“内容”,并将“复制到输出目录”设置为“始终复制”。然后,他们将在构建时包含在输出目录中。

某些应用程序的dll在本地部署(如DirectX)时有效,有些应用程序不会(SQLServer Express)。你只需要尝试一下,看看是否可以。

但是,我会说,使用VMWare程序集可能是针对EULA的。这就像试图包含Office程序集以便在没有安装它的机器上运行Excel。

至于传递参数,如果你真的想使用它作为一个ClickOnce应用程序,这里是一个博客条目解释如何将参数传递给离线(或在线)ClickOnce应用程序:

http://robindotnet.wordpress.com/2010/03/21/how-to-pass-arguments-to-an-offline-clickonce-application/

相关问题