繁体   English   中英

A Nuget package 在安装时从其参考项目中复制 static 文件

[英]A Nuget package copies the static files from its reference project when installed

我有一个名为“A”的项目,它包含一些 static 文件(如 dll 或其他文件)。

它的 csproj 如下

<ItemGroup>
    <ContentWithTargetPath Include="files\MyDll.dll">
        <CopyToOutputDirectory>Always</CopyToOutputDirectory>
        <TargetPath>MyDll.dll</TargetPath>
    </ContentWithTargetPath>
</ItemGroup>

<ItemGroup>
    <Content Include="files\MyDll.dll">
        <PackageCopyToOutput>true</PackageCopyToOutput>
        <PackagePath>contentFiles\any\any\;content\any\any</PackagePath>
    </Content>
</ItemGroup>

所以根据内容,无论我使用项目参考还是package参考参考A,static文件将始终复制到output文件夹中。

然后我有一个名为“B”的项目,它使用项目引用来引用 A。

B的csproj部分如下:

<ItemGroup>
    <ProjectReference Include="..\..\A\A.csproj"/>
</ItemGroup>

现在我将 B 设为 Nuget package 并由 C 项目(包参考)引用。

但是来自 A 的 static 文件似乎没有出现在 C 的 output 文件夹中。

有什么办法处理吗?

谢谢!

contentFiles 节点无法从 nuget 依赖项A到主项目C中工作。 在我多次测试下,这是一个相当大的问题。

似乎contentfFiles节点无法将依赖项从 nuget 转移到主项目。

解决方法之一是将nuget A额外安装到项目 C中。

===========================

并且解决方法可能不是那么方便,或者您可以将这些添加到项目 B 中,这样我们就不应该另外安装 nuget A:

1)将这些添加到项目B.csproj文件中:

<ItemGroup>
        <None Include="$(TargetDir)\MyDll.dll">
            <Pack>true</Pack>
            <PackagePath>contentFiles\any\any\;content\any\any</PackagePath>
            <PackageCopyToOutput>true</PackageCopyToOutput>         
        </None>     
</ItemGroup>

然后,重新打包您的项目 B。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM