【问题标题】:Include referenced assembly's configuration in cspkg在 cspkg 中包含引用程序集的配置
【发布时间】:2013-12-03 19:40:08
【问题描述】:

我有一个我想与我的 Azure Web 角色一起部署的可执行文件。可执行文件有一个配置文件也需要包含在内。 我尝试在我的 web 角色项目中添加对可执行文件项目的引用,这使得 exe 文件出现在 cspkg 的 bin 文件夹中,而不是配置文件中。 我怎样才能让配置文件也包含在内? 将其作为内容文件直接包含在 Web 角色项目中似乎是错误的,因为该文件是构建工件(app.config 在构建过程中被重命名为 .config.exe)。

谢谢!

【问题讨论】:

    标签: azure deployment


    【解决方案1】:

    在早期的 SDK 中,他们添加了角色内容文件夹的概念,或者您可以在服务定义文件中指向并在此文件夹中说任何内容的文件夹,将其添加到包中并与角色一起部署。如果您查看服务定义的架构,您会看到这些都列在web 和worker 角色架构中。您可以手动添加它并指向本地系统上的任何位置,该目录中的任何内容都将被拾取并包含在内。

      <WebRole name="SimpleWeb" vmsize="Small">
    
        ...
    
        <Contents>
          <Content destination="ConsoleApp">
              <SourceDirectory path="c:\src\SimpleWebContent\ConsoleApp\BuildOutput" />
          </Content>
        </Contents>
      </WebRole>
    

    例如,您可以指向可执行文件的构建的输出目录,以便包含您的构建为该可执行文件生成的任何内容。您可以设置与应用程序根目录相关的目标目录,但棘手的部分是源目录。请注意,在我上面的示例中,提供了完整路径。文档说您可以使用相对路径,但我尝试了许多组合,并且行为似乎非常古怪。完整的路径确实有效。

    VS SDK 工具直到 SDK 1.7 才公开这一点,它仍然不是很好。 Phil Hoff 在其上发表了一篇名为“Add Files to your Windows Azure Package using Role Content Folders”的博文。请注意,当您使用这种添加文件的方法时,您不会看到内容元素出现在您的服务定义中。他们在打包时自动注入。如果您将其作为构建过程的一部分,由于 VS 工具正在执行注入,可能不会发生,但公平地说,我没有尝试直接调用 cspack 来查看服务定义文件中包含的内容元素是否实际打包那些与否。另外,我发现仅添加一个新文件夹并仅在该文件夹下放置文件似乎不起作用。我不得不在那里按名称实际添加文件,这似乎是错误的。我确实破解了 .ccproj 文件以在文件夹 include 上使用通配符,这确实有效,但对我来说似乎也是一种破解。

    【讨论】:

    • 感谢您的详细回答,我不知道角色内容文件夹功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-22
    • 2010-10-03
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-30
    相关资源
    最近更新 更多