我試圖創建一個構建腳本,它允許我指定包含在特定網站中的「模塊項目」的路徑列表。MSBuild,包含基於一組路徑的文件
因此,我有這樣的佈局:
customer folder
|_MainProject
|_ModuleProject1
|_ModuleProject2
所以,基本上我希望能夠指定將包含ModuleProject1和2的的ItemGroup,並從中複製相關的文件到MainProject。
<ItemGroup>
<CustomModule Include="ModuleProject1\*.csproj" />
<CustomModule Include="ModuleProjec2\*.csproj" />
</ItemGroup>
在我的主要構建腳本然後,我想找出駐留項目的OBJ \發佈的* .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" />
它實際上是包含在「衛星」項目小組。