我正在尝试创建一个构建脚本,它允许我指定特定网站中包含的“模块项目”的路径列表。
因此,我有这样的布局:
customer folder
|_MainProject
|_ModuleProject1
|_ModuleProject2
所以,基本上我希望能够指定一个包含 ModuleProject1 和 2 的 ItemGroup,并将相关文件从中复制到 MainProject。
<ItemGroup>
<CustomModule Include="ModuleProject1\*.csproj" />
<CustomModule Include="ModuleProjec2\*.csproj" />
</ItemGroup>
然后,在我的主构建脚本中,我想找出我的附属程序集的路径,以及驻留在项目的 obj\Release*.dll 文件夹中的所有 dll。
我已经有项目文件(.csproj)的项目组,所以基本上我只想添加更多的文件引用。但我不知道我会怎么做。这就是我今天所拥有的:
<Satellites Include="$(ReferencesFolder)\??\*.dll" />
<Satellites Include="$(SiteRoot)\bin\??\*.dll" />
<Satellites Include="%(CustomModule.RelativeDir)obj\$(Configuration)\??\*.dll" />
根据我所拥有的事实,我将如何着手使最后一行工作?
这样做时:
<Message Text="%(CustomModule.RelativeDir)obj\$(Configuration)\??\*.dll" />
它输出这个:
ModuleProject1\obj\Release\??\*.dll
ModuleProject2\obj\Release\??\*.dll
如果有人有一些关于 MSBuild 基础知识的链接以及很好的示例,我将不胜感激。我总是以一些非常神秘的例子结束 msdn,这些例子并没有真正解释太多。
编辑:我修改了我的计划并且几乎让它工作,但是包含并没有像我期望的那样真正工作。不包括任何内容,但有一些文件计算路径。
如果我手动添加:
<Satellites Include="ModuleProject1\obj\Release\??\*.dll" />
它实际上包含在“卫星”项目组中。