首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >部署跨越几个folders....almost <probing>的应用程序

部署跨越几个folders....almost <probing>的应用程序
EN

Stack Overflow用户
提问于 2011-04-08 16:14:08
回答 3查看 149关注 0票数 1

我有一个相当大的系统需要部署,有大量的组件,并且构建得相当可扩展。有一组核心组件对任何事情都是必需的,而其他组件组则做更专业的事情(到每一组都是它们自己的应用程序-这不一定是现在的事实,但我们正朝着那个方向发展……)

当我部署时,我想尝试将一些结构融入到事物中。我的想法是:

App1

  • c:\program

  • c:\程序文件\ MyCompany \ MyBigSystem \

  • 文件\ MyCompany \ MyBigSystem \ MyBigSystem文件\ MyCompany \ MyBigSystem \ App3

  • c:\program文件\ MyCompany \ MyBigSystem \ AppN

  • c:\program文件\ MyCompany \MyBigSystem\ Core

例如,...\App1中的文件无疑将在...\Core中具有依赖文件,但显然我希望避免将这些文件重新分发到...\App1文件夹。我想让App1从核心文件夹中捡起它们。

我很想看看这是否可能。

以下是一些限制和观察:

目前,每个组件都是使用静态引用构建的。比起放弃这个立场,我更倾向于将所有东西部署到一个文件夹中。此外,我不想修改任何假设这种部署结构的程序代码。因此,诸如使用Assembly.LoadFrom或巧妙地设置appDomain路径之类的大量更改已经过时。

不过,我可以接受app.config条目,因为这些条目可以在安装过程中编写。

我看过(并且经过了非常简短的测试),乍一看,它看起来很理想,但由于它是子目录的限制,它最终变得不合适了。

我看过了--我没有完全读到这篇文章,因为我必须注册十几个核心程序集才能让我立即离开(尽管这么说了,如果我准备好了麻烦的话,我很可能会得到我想要的东西)。

有人能建议我可以考虑的其他方法吗?

蒂娅,皮特

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-14 09:21:04

最后,我几乎得到了我想要的,但没有完全得到。我最终得到了我想要的所有文件夹结构.

App1

  • c:\program

  • c:\程序文件\ MyCompany \ MyBigSystem \

  • 文件\ MyCompany \ MyBigSystem \ MyBigSystem文件\ MyCompany \ MyBigSystem \ App3

  • c:\program文件\ MyCompany \ MyBigSystem \ AppN

  • c:\program文件\ MyCompany \MyBigSystem\ Core

....but必须将主要可执行文件放在"MyBigSystem“文件夹中,即

App1.exe

  • c:\program

  • c:\程序文件\ MyCompany \ MyBigSystem \ App2.exe.config

文件\ MyCompany \ MyBigSystem \ MyBigSystem文件\ MyCompany \ MyBigSystem \ App2.exe

  • c:\program文件\ MyCompany \MyBigSystem\App2.exe.config

我在可执行文件的配置文件中用<probing>条目来补充这个结构。

代码语言:javascript
复制
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="Core"/>
    </assemblyBinding>
  </runtime>

这似乎保持了根文件夹的整洁,我可以合理地希望。它还允许App6访问App1中的依赖库,例如,如果这是必要的话。(正是出于这个原因,我避开了GAC -如果我们的应用程序依赖于应用程序,我可以看到我们必须拥有GAC的一切,这将是不合适的。)

在此方法中,除了信任之外,没有任何代码更改。主要的挑战是获得VS安装项目,以便将除了.exe和.exe.config之外的所有东西都放在子文件夹中。

票数 0
EN

Stack Overflow用户

发布于 2011-04-08 16:18:25

您可能需要编译而不是发布。使用第三方安装程序将是最简单的。安装盾牌很不错。

票数 0
EN

Stack Overflow用户

发布于 2011-04-08 16:25:25

如果您正在使用Eclipse,您可以创建一个用于Core的项目作为源库,并将其包含在所有其他项目中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5597906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档