2013-12-03 33 views
2

我有一個可執行文件,我想與我的Azure Web角色一起部署。該可執行文件還需要包含一個配置文件。 我嘗試在我的web角色項目中添加對可執行文件項目的引用,這使得exe文件出現在cspkg的bin文件夾中,而不是配置文件。 我怎樣才能獲得配置文件? 將它直接作爲內容文件包含在Web角色項目中似乎是錯誤的,因爲此文件是構建工件(在構建過程中,app.config被重命名爲.config.exe)。在cspkg中包含引用程序集的配置

謝謝!

回答

2

在早期的SDK他們補充作用的內容文件夾的概念,或文件夾,您可以指向在服務定義文件,並說此文件夾中任何東西,它添加到包中,並與角色進行部署。如果您查看服務定義的架構,您將看到這些在webworker角色模式中都列出了這些模式。您可以手動添加並指向本地系統上的任何位置,並且該目錄中的任何內容都將被選中幷包含在內。

<WebRole name="SimpleWeb" vmsize="Small"> 

    ... 

    <Contents> 
     <Content destination="ConsoleApp"> 
      <SourceDirectory path="c:\src\SimpleWebContent\ConsoleApp\BuildOutput" /> 
     </Content> 
    </Contents> 
    </WebRole> 

例如,你可以點到構建的輸出目錄爲可執行,這樣由您的構建生成該可執行任何將被包括在內。您可以根據應用程序根目錄設置目標目錄,但棘手的部分是源目錄。請注意,在上面的示例中提供了完整路徑。該文件說,你可以使用相對路徑,但我嘗試了很多組合,行爲看起來很古怪。完整的路徑確實有效。

的VS SDK工具沒有暴露這一點,直到SDK 1.7,它仍然不是很好。菲爾霍夫在它上面寫了一篇名爲「Add Files to your Windows Azure Package using Role Content Folders」的博客文章。請注意,當您使用這種添加文件的方法時,您將看不到內容元素出現在您的服務定義中。他們在包裝時間自動注入。如果您將此作爲構建過程的一部分,而這些構建過程可能不會發生,因爲VS工具正在進行注入,但爲了公平起見,我沒有直接調用cspack來查看是​​否將包含在服務定義文件中的內容元素實際打包那些還是不是。此外,我發現只是添加一個新文件夾,只是在該文件夾下的文件似乎沒有工作。我不得不通過名字在那裏添加文件,這似乎是錯誤的。我確實破解了.ccproj文件,在文件夾include上使用了一個通配符,該文件確實有效,但對我來說似乎也是一種破解。

+0

感謝您的詳細回答,我不知道角色內容文件夾功能。 – user1039580

相關問題