我需要启用.NET应用程序在网络共享上运行,问题是这将在客户端的网络共享上,因此路径将不相同。
我已经快速地看了一下ClickOnce和Visual Studio 2008中的发布选项,但是它需要一个特定的网络共享位置--我假设这个位置在它执行任务时存储在某个地方。
目前,这项工作是用一个旧的VB 6应用程序完成的,因此可以解决所有这些安全问题,但该应用程序编写得很差,几乎不可能维护,所以它确实需要去。
是否可以设置域控制器以允许执行此特定的.NET应用程序?任何其他选项都将受到欢迎,因为我想让这个小应用程序非常关键。
我应该说,客户端网络是学校,因此通常与客户端机器一样被锁定,因此手动向每个客户端机器添加异常是一个很大的禁忌。
抱歉,我忘了说我们目前仅限于.NET 2.0,我们计划将其升级到4.0,但这不会立即发生。
5条答案
按热度按时间tag5nh1u1#
1.在项目属性的“发布”选项卡上,有一个“安装文件夹URL”文本框。Visual Studio要求您在那里放置一些东西。只需输入任何随机UNC路径(
\\someserver\randomfolder
)1.单击“选项”按钮。选择“清单”并选中“排除部署提供程序URL”。这将删除在步骤1中强制添加的路径。
这应该允许客户端将您的部署放置在任何他们想要的地方。当他们的用户安装时,他们的开始菜单快捷方式将指向他们放置部署的位置。
下面是MSDN关于该复选框的描述...
排除部署提供商URL
指定是否从部署清单中排除部署提供程序URL。从Visual Studio 2008 SP1开始,对于应用程序更新应来自初始发布时未知的位置的方案,可以从清单中排除部署提供程序URL。发布应用程序后,将从安装应用程序的位置检查更新。
mzillmmw2#
清单中的部署位置必须与其部署位置匹配。您必须使用UNC路径。这不会有任何问题。ClickOnce应用程序在用户的配置文件下安装,并且不需要管理权限。它只需要对部署应用程序的文件共享具有读访问权限。
最好的答案是为每个学校创建部署,并设置UNC路径,因为这样你就可以向他们发送一个签名的部署,他们可以将其放在文件共享上。但如果涉及很多学校,这是一个主要的P.I.T.A.。
下一个答案是:谁实际上将应用程序部署到每个学校,iidoe.将其放在文件共享上?是否有某种管理员?
我的建议是(取决于是谁)给他们mageUI.exe,并教他们如何更改部署URL和重新签署清单(它将提示)。他们重新签署部署的问题是他们必须有一个证书。你可以给予每个学校他们自己的证书(使用VS中的“创建测试证书”按钮创建,或使用MakeCert创建一个[询问您是否想要更多信息])或给予他们所有相同的密钥(不是很安全,但嘿,它会工作)。
如果你至少更新到了.NET 3.5 SP-1,你可以部署应用程序而不需要签名(我不是在给你一个困难的时间关于.NET 2.0,我的公司是在相同的位置,我只是传递这个信息。
如果计算机可以访问互联网,您可能会找到一个地方托管部署,每月10美元,并将其推送到Web服务器,让他们都从那里安装。然后每个人都会同时获得更新,您只需将更新部署到一个位置。这将是最简单的解决方案,假设他们可以访问互联网。
lh80um4z3#
如果我没弄错的话,你可能担心驱动器号和处理UNC约定,也许这里的链接可以保存你解决这个问题?在CodeGuru上看看这个,它包含了如何在运行时动态Map到UNC共享的代码。
uinbv5nw4#
问题是与.Net框架相关的安全性。不幸的是,我在这方面没有太多经验,但也许这些链接之一会有所帮助:
iovurdzv5#
可以使用UNC路径吗?