我正在寫一個C#項目中,我有以下目錄結構:MSBuild:如何在鏈接的父目錄中包含一堆文件?
LibFoo
|
---- LibFoo.Shared
| |
| ---- [a bunch of .cs files]
|
---- LibFoo.Uwp
| |
| ---- LibFoo.Uwp.csproj
|
---- LibFoo.Wpf
|
---- LibFoo.Wpf.csproj
我很好奇,想知道,是否有可能包括從共享目錄中的C#文件,讓他們在出現Visual Studio中的解決方案資源管理器?我知道你可以通過爲<Compile>
標籤設置Link
屬性來做到這一點,但是我不太清楚在項目中有多少個.cs
文件時該怎麼做。
澄清,這是我的csproj文件的相關部分:
<PropertyGroup>
<!-- Compile everything in this dir -->
<CompileRoot>..\LibFoo.Shared</CompileRoot>
</PropertyGroup>
<ItemGroup>
<Compile Include="$(CompileRoot)\**\*.cs">
<Link> <!--What goes here?--> </Link>
</Compile>
</ItemGroup>
感謝您的幫助!
編輯:忘了提及,它們包含在父目錄中的事實是相關的,因爲這就是爲什麼它們不在Visual Studio中顯示的原因。如果他們出現在VS中,我不會做任何這種鏈接的東西。
編輯2:繼shamp00的建議,我已經試過這樣:
<ItemGroup>
<Compile Include="$(CompileRoot)\**\*.cs">
<Link>$([MSBuild]::MakeRelative('$(CompileRoot)', '%(FullPath)'))</Link>
</Compile>
</ItemGroup>
不幸的是,雖然它似乎是輸出很好,當我從項目運行Message
任務,鏈接似乎在Visual Studio中簡單地被忽略。
編輯3:對於那些有興趣在攝製-ING這個問題,你可以從GitHub repository克隆來源:
git clone [email protected]:jamesqo/typed-xaml
cd typed-xaml
之後,你可以打開Visual Studio中的解決方案,看看影響你自己。相關代碼位於this文件中。
謝謝!不幸的是,雖然這個消息似乎正確顯示,但他們似乎並沒有在Visual Studio中顯示出來。 –
這很煩人。試試我的編輯。 – shamp00
不幸的是,它仍然不能正常工作...... :(如果你有興趣獲得repro,可以[克隆GitHub倉庫](https://github.com/jamesqo/typed-xaml)並自己嘗試。相關代碼在[this](https://github.com/jamesqo/typed-xaml/blob/master/src/Common。道具)文件。 –