亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MSBuild。在構建之前創建 EmbeddedResource

MSBuild。在構建之前創建 EmbeddedResource

C#
守候你守候我 2021-11-07 19:54:30
我想在編譯主單元之前在程序集中嵌入本地引用。但是寫的目標不起作用。  <Target Name="EmbedLocal" BeforeTargets="CoreCompile">    <Message Text="Run EmbedLocal for $(MSBuildProjectFullPath)..." Importance="high"/>        <ItemGroup>      <EmbeddedResource Include="@( ReferencePath->WithMetadataValue( 'CopyLocal', 'true' )->Metadata( 'FullPath' ) )"/>    </ItemGroup>    <Message Text="Embed local references complete for $(OutputPath)$(TargetFileName)." Importance="high" />  </Target>@(EmbeddedResource) 此時包含有效的路徑列表。更新:現在我的導入文件包含:<Project ToolsVersion="$(MSBuildToolsVersion)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">  <PropertyGroup>    <EmbedLocalReferences Condition=" '$(EmbedLocalReferences)' == '' ">True</EmbedLocalReferences>  </PropertyGroup>  <Target Name="EmbedLocal" BeforeTargets="ResolveReferences" Condition=" '$(EmbedLocalReferences)' == 'True' ">    <Message Text="Run EmbedLocal for $(MSBuildProjectFullPath)..." Importance="high"/>    <ItemGroup>      <EmbeddedResource Include="@(ReferenceCopyLocalPaths->WithMetadataValue( 'Extension', '.dll' )->Metadata( 'FullPath' ))">        <LogicalName>%(ReferenceCopyLocalPaths.Filename)%(ReferenceCopyLocalPaths.Extension)</LogicalName>      </EmbeddedResource>    </ItemGroup>       <Message Text="Embed local references complete for $(OutputPath)$(TargetFileName)." Importance="high" />  </Target></Project>它工作正常。輸出程序集包含所有 .dll 引用作為 EmbeddedResource。
查看完整描述

1 回答

?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

MSBuild。在構建之前創建 EmbeddedResource


您可以嘗試對csproj 文件使用BeforeBuild操作以包含嵌入的資源:


  <Target Name="BeforeBuild">

    ... 

    <ItemGroup>

      <EmbeddedResource Include="..."/>

    </ItemGroup>

    ...

  </Target>

現在 MSBuild 會將此文件作為嵌入資源添加到您的程序集中。


更新:


謝謝@Martin Ullrich。他指出了正確的方向,我們可以用<Target Name="EmbedLocal" BeforeTargets="PrepareForBuild">在Directory.Build.props來解決這個問題。您可以檢查它是否適合您。


  <Target Name="EmbedLocal" BeforeTargets="PrepareForBuild">

    ... 

    <ItemGroup>

      <EmbeddedResource Include="..."/>

    </ItemGroup>

    ...

  </Target>


查看完整回答
反對 回復 2021-11-07
  • 1 回答
  • 0 關注
  • 394 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號