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