解决方案文件夹中有两个文件夹(但未添加到解决方案中),我想将其复制到该工作人员角色的批准中。这些文件夹包含dll和其他文件,我不想将其包含在解决方案中并将其标记为“内容”。
我正在使用Azure 2.4 SDK。我在msdn上阅读了content element并尝试使用内容元素来实现这一点。如下所示:
<Contents>
<Content destination="\EnterpriseLibraries_5_0">
<SourceDirectory path="..\..\EnterpriseLibraries\EnterpriseLibraries_5_0\" />
</Content>
<Content destination="\EnterpriseLibraries_6_0">
<SourceDirectory path="..\..\EnterpriseLibraries\EnterpriseLibraries_6_0" />
</Content>
</Contents>
但是每次都无法找到源目录。我一直在为这些文件夹创建相对路径。
作为第二种方法,我将这些文件夹内容作为post build活动复制到$ Outdir中。但是postbuild事件对于复制到approot的内容没有影响。
请使用相对路径建议实现此外部内容副本的方式。
更新:在内容元素中添加源目录的物理路径可以很好地工作。但是我无法创建相对路径,无法弄清楚“相对路径”是如何“相对”到哪个文件夹。
回到相对路径问题: 似乎相对的基础路径不断变化。它有时从\\ bin \ debug开始,如果我在下一次构建期间以某种方式创建相对路径获取此基本路径\成为基本路径。
我在构建路径期间一直收到错误:
尝试1: ServiceDefinition.csdef(0,0):错误CloudServices089:在角色WCFWorker中找不到源目录'D:\ a \ b \ c \ d \ aa \ aa \ bin \ Debug .... \ ExternalLib \ EnterpriseLibraries_5_0 \'。
尝试2: ServiceDefinition.csdef(0,0):错误CloudServices089:在角色WCFWorker中找不到源目录'D:\ a \ b \ c \ d \ aa \ aa ........ \ ExternalLib \ EnterpriseLibraries_5_0 \'。
答案 0 :(得分:0)
使用hack可以在构建时获得完整路径的解决方案:
在ccproj文件中,您可以使用https://stackoverflow.com/a/20014410/413672中定义的 SetEnvironmentVariableTask 设置环境变量,如下所示:
<Target Name="BeforePackageComputeService">
<SetEnvironmentVariableTask Name="CCPROJ_DIR" Value="$(MSBuildThisFileDirectory)" />
</Target>
最后,引用%CCPROJ_DIR%
xml元素的path
属性中的SourceDirectory
变量。