C#-clickonce部署和调用

129 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情

有这么一个场景,需要在浏览器中调用打印机进行打印,方案一可以写html页面,然后调用浏览器自带的打印方法,问题就是批量打印格式不好控制;方案二使用现在的库,比如Lodop,非常成熟好用的web打印插件,问题需要安装和收费;方案三自己编写打印程序运行在客户机上,使用websocket进行调用打印,稍微麻烦一点,但是可以实现;方案四如果你使用的ie浏览器,使用ClickOnce这种技术来实现,效果其实不错,那么就简单介绍下ClickOnce吧。

简介

ClickOnce 是一种部署技术,使用它可以用来进行应用程序的自动更新,也可以使用在浏览器中直接调用部署好的应用程序。

如何部署

这里以一个简单的例子进行说明,首先使用vs创建一个windows应用程序,这个程序既是你编写的功能程序。

选择项目属性,找到发布选项,选择你需要部署的文件地址,如果是需要发布到服务器上,选择服务器的地址。

image.png

选择选项,这里可以选择一些发布的配置,比如应用程序调用时能够传递参数。

image.png

点击发布,再发布的位置(publish)能够找到发布成功的文件。

具体的操作可以查看官方文档:Deploy a .NET Windows Desktop application using ClickOnce - Visual Studio (Windows) | Microsoft Learn

如何调用

这里我们通过浏览器来进行调用我们发布的程序。将发布的应用程序放置到web服务器能够访问的文件夹中。
修改testclickonce.application的地址为我们放置的服务器地址,这里使用的是本地web服务。
我们写一个简单的页面,进行调用,代码如下:

<!DOCTYPE html>
<html>
<head>
	<title>testclickonce</title>
</head>
<body>
	<button onclick="testclickonce();">点击安装</button>
</body>
<script type="text/javascript">
	function testclickonce(){
		var url="http://localhost/myweb/testclickonce.application";
		console.log(url);
		this.location=url;
	}
</script>
</html>

使用chrome浏览器打开这个页面,点击安装,我们会看到浏览器了这个程序,没有直接运行,可以将浏览器设置为下载后自动打开。

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情