【发布时间】:2015-05-07 21:51:17
【问题描述】:
是否有可靠、简单的方法将文件复制到 Azure 云服务部署包,而不在 Web 项目中包含或引用它?
我们有一个站点,我们将在 Azure 云服务项目和本地托管一个 Web 角色,每个站点都需要不同的库用于数据访问层。我们可以将所有必要的文件转储到项目中,并在构建时复制它们,然后根据环境变量动态选择要加载的程序集,但这似乎有点草率——而且可能有正当的理由我们不想要这些图书馆位于遥远的 Azure 区域的服务器上。这些程序集不被项目直接引用,而是在运行时使用MEF 或类似机制加载。
这是我们尝试过的构建后脚本:
if "$(TargetProfile)" == "" (
echo "OnPrem"
xcopy /Y "$(ProjectDir)\lib\OnPrem\TestLibrary.dll" "$(ProjectDir)\$(OutputPath)\$(Configuration)"
) else (
echo "Cloud"
copy /Y "$(ProjectDir)\lib\Cloud\TestLibrary.dll" "$(ProjectDir)\$(OutputPath)\$(Configuration)"
)
在构建网站项目时以及在构建网站项目的msbuild /t:publish 步骤的部分期间,只要文件按预期复制即可。但是,TestLibrary.dll 文件不包含在云服务包中,未部署,运行时加载失败。
以前在 Azure 部署中是否做过类似的事情?我承认我们可能以错误的方式处理这个问题,但我还没有找到适合我们需求的优雅方法。
【问题讨论】:
标签: .net visual-studio azure msbuild azure-cloud-services