有没有一种稳定,简单的方法将文件复制到 Azure 云服务部署包中,而不需要在 Web 项目中包含或引用它?
我们有一个站点,既要作为 Azure 云服务项目中的 Web 角色托管,也要在本地托管,每个托管方式都需要不同的数据访问层库。我们可以将所有必要的文件都倒入该项目中,并在生成时进行复制,然后根据环境变量动态选择加载哪些程序集,但这似乎有点不太规范,而且我们可能不想让这些库坐落在远程 Azure 区域的服务器上。这些程序集不是项目直接引用的,而是在运行时使用 MEF 或某些类似机制进行加载。
下面是我们尝试过的一个构建后脚本:
这个方案可行,即在构建期间将文件复制到预期的位置,并在
Azure部署中是否曾经出现过类似的情况?我承认可能我们的方法不对,但我还没有找到适合我们需求的优雅解决方案。
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部署中是否曾经出现过类似的情况?我承认可能我们的方法不对,但我还没有找到适合我们需求的优雅解决方案。