2010-03-18 133 views
3

我需要启用一个.NET应用程序运行在网络共享上运行.NET应用程序,问题是,这将是对客户的网络共享,因此该路径不会完全相同。通过网络

我有一个快速浏览一下的ClickOnce和Visual Studio 2008的发布选项,但它需要一个特定的网络共享位置 - 而我假设这个位置存储在某个地方,这确实它的事。

目前这项工作正在与一个老VB6应用程序进行的,因而得到周围所有这些安全问题,但该应用程序写得不好,几乎不可能保持如此它真正需要去。

是否有可能为域控制器被设置为允许这种特定的.NET应用程序来执行?任何其他选项都会受到欢迎,因为我希望这个小应用程序对业务至关重要。

我应该说,客户端网络是学校的,因而往往是相当锁定为是客户机,所以手动添加例外每台客户机是一个很大的不,不。


道歉,我忘了提我们仅限于.NET 2.0的时刻,我们计划这个升级到4.0,但不会立即发生。

+0

我想你的答案在于编辑/管理领域政策范围内,并为serverfault.com可能是一个更好的网站,以寻找答案。 – Numenor 2010-03-18 11:55:20

+0

谢谢你的建议,现在也询问了serverfault。 – Marlon 2010-03-18 12:11:36

+0

ClickOnce是为这种使用场景而明确设计的。再看一次。 – 2010-03-18 13:01:16

回答

0

您可以使用UNC路径吗?

\\\server\folder\app.exe? 
+0

可能会在Code Access Security上进行配置,以允许从这样的路径执行...... – 2010-03-18 11:58:04

0

也许,这里的链接可以节省你,如果我没有记错的话,你所担心的驱动器号和处理UNC约定?在CodeGuru上查看一下,其中包含有关如何在运行时动态映射到UNC共享的代码。

+0

nope我在说要做出clickonce部署VS2008在发布向导中要求UNC网络。我担心的是,如果我为我们在这里的网络添加一个 - 不会为客户端网络部署。 – Marlon 2010-03-18 12:11:00

+0

@Marlon:您为什么认为它不会部署到客户端网络?为什么不放入与客户端网络相同的指定网络共享? – t0mm13b 2010-03-18 12:32:27

+0

我们不能真正指定路径或驱动器号 - 我们有超过100所学校,每个学校都有不同的网络配置。 – Marlon 2010-03-19 11:43:34

3
  1. 在项目属性的“发布”选项卡上有一个“安装文件夹URL”文本框。 Visual Studio需要你把东西放在那里。只需放入任意随机UNC路径(\\someserver\randomfolder
  2. 单击“选项”按钮。选择“清单”并选中“排除部署提供商URL”。这将删除您在步骤1中强制添加的路径。

这应该允许客户端将您的部署放在任何他们想要的位置。当他们的用户安装时,他们的开始菜单快捷方式将指向他们放置部署的位置。

下面是MSDN关于复选框的说明...

排除部署提供网址
指定是否排除从 部署清单的 部署提供网址。在 的Visual Studio 2008 SP1开始,部署 提供商URL可以从 清单中排除其中 应用程序更新应该在 初始发布时来自 位置不明的情况。 应用程序发布后,将从 应用程序的安装位置检查更新 。

+0

您好,感谢您的建议,似乎解决了我的问题 - 但是,具体的复选框被禁用:(只有前两个被启用。你有什么建议吗? – Marlon 2010-03-22 15:10:48

+1

我猜测其他设置是禁用它。我将创建一个虚拟项目,并一次更改ClickOnce设置。每次更改后,检查是否禁用“排除部署提供程序URL”复选框。 – codeConcussion 2010-03-22 15:57:58

+0

已发现此选项仅适用于使用.NET的应用程序3.5及以上,但感谢您提供的信息,另一件事就是提升升级的好处。 – Marlon 2010-03-22 16:20:45

3

在清单必须在那里部署的位置相匹配的部署位置。您将需要使用UNC路径。这不应该有任何问题。 ClickOnce应用程序在用户配置文件下安装,并且不需要管理权限。它只需要读取部署应用程序的文件共享。

最好的答案是创建每个学校的部署,并为您设置的UNC路径,因为那么你可以向他们发送签名的部署,他们可以把它放在文件共享。但这是一个重要的p.i.t.a.如果涉及很多学校的话。

下一个答案是:究竟是谁应用程序部署到每所学校,即把它放在文件共享?有没有某种管理员?

我会建议(取决于是谁)是给他们mageUI.exe,教他们如何改变的部署URL,并重新签署清单(它会提示)。他们重新签署部署的问题是他们必须有证书。你可以为每所学校提供他们自己的证书(使用VS中的“创建测试证书”按钮创建,或者使用MakeCert创建一个[询问你是否想要更多信息])或给他们所有相同的密钥(不是很安全,但嘿,它会工作)。

如果您至少更新到.NET 3.5 SP-1,你可以,不签名部署应用程序。 (我不会给你一个困难时期有关.NET 2.0,我公司是在同一个位置,我只是把这个情况。)

如果计算机有网络连接,你也许可以找个地方以10美元/月的价格托管部署,并将其推送到网络服务器,并让它们从那里安装。然后每个人都会同时获得更新,您只需要将更新部署到一个位置即可。假设他们有互联网接入,这将是最简单的解决方案。

RobinDotNet
Visit my ClickOnce blog!