c# - 运行 C# clickonce 控制台应用程序

标签 c# .net-4.0 clickonce gac command-line-arguments

我有一个引用 dll“VMware.Vim.dll”的命令行控制台应用程序,但它在我本地计算机上的 GAC 中保存了其他引用的 dll,如 VimService41.dll、VimService20.dll 等。 我想将此 exe 部署到任何计算机并能够通过传递参数来运行它。当我复制 exe 和 VMware.Vim.dll 时,它会提示其他丢失的 dll,尽管它们不是发布文件夹的一部分。

我尝试了“发布”选项并创建了一个 ClickOnce 应用程序以将其部署到我想要从中执行 exe 的机器上。这创建了一个 setup.exe 和一个 list 文件。当我运行它时,它提示说外部 dll 没有添加到 GAC。

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

最佳答案

首先,您不通过运行 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/

关于c# - 运行 C# clickonce 控制台应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6310774/

相关文章:

ClickOnce list 和部署问题

visual-studio-2008 - 如何安装/部署/构建我的 Visual C# 应用程序以便它可供所有用户使用?

c# - Azure云服务: maintaining object references across different requests

c# - 如何自动设置邮件分类?

.net - 将 JSON 解析为 .NET 4.0 中的非对象?

c# - 如何指定 clickOnce 应用程序的目标文件夹?

c# - 如何将包含在 dll 中的组件嵌入到 exe 中,以便它可以从内存中运行?

c# - session 变量立即为空..ASP.net Core

asp.net - MEF零件配置,存放在哪里?

linq-to-sql - SQLMetal 多个外键指向一张表问题