1
Project1.csproj包含一個import語句,它應該(在理想的情況下)進口Project2的:.csproj的文件不正確導入其他項目
<Import Project="Project2.targets"/>
Project2.targets只包含一個資源進口的清單:
<Project DefaultTargets="BeforeBuild"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="BeforeBuild">
<ItemGroup>
<Resource Include="resources\logo.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="resources\icon.ico" />
</ItemGroup>
</Target>
</Project>
在Project1中,元素使用這些Project2定義的資源,如圖標。即使構建成功,資源也不包含在最終的可執行文件中。
我究竟做錯了什麼?使用ItemGroup資源定義替換Project1.csproj中的導入語句會生成工作程序。
我的目標是導入一個外部定義的資源列表,我認爲這可以通過導入另一個項目來完成。
可能資源被添加到Resource ItemGroup的時間太晚了,因爲它們位於解析全局ItemGroups後運行的目標中,並且導致在BeforeBuild運行之前引用ItemGroup的其他組件不能看到它們。他們必須在目標?如果沒有,那可能只是解決了這個問題。 – stijn
另外,根據''放置在源文件中的位置,可能會覆蓋'BeforeBuild'目標。但是,我也建議將這些項目放在目標之外。 –
@stijn將Items移出Target並將Import放置在Project1.csproj的末尾確實解決了這個問題。如果您發佈,我會接受您或Martin Ullrich的回答。 – ViliX64