簡體   English   中英

無法在.net Core中復制帶有nuget包的文件夾

[英]Cannot copy folder with nuget package in .net core

我創建一個NuGet包並安裝到另一個項目中。 但請勿將文件復制到位置項目中。 僅我的文件引用了NuGet包,並且我更改了代碼,該包也更改了! 我想將包復制到目標項目。

<?xml version="1.0"?>
<package>
 <metadata minClientVersion="3.3.0">
    <id>MyPackage</id>
    <version>1.0.0</version>
    <authors>Meysam</authors>
    <owners>Meysam</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Package description</description>
    <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
    <copyright>Copyright 2018</copyright>
    <tags>Tag1 Tag2</tags>

    <contentFiles>
      <files include="cs/*.*/**" buildAction="Compile" />
    </contentFiles>

  </metadata>

  <files>
    <file src="ConsoleApp1\CustomClass\CustomClass.cs" target="contentFiles\cs\any\CustomClass" />
  </files>

</package>

在此處輸入圖片說明

在此處輸入圖片說明

僅當使用packages.config ,才支持將文件復制到使用nuget包的項目中,而.NET Core項目所需的SDK風格的項目則不支持。 如您的屏幕快照所示,在構建時會包含PackageReferences項目中的contentFiles 您在屏幕快照中指向的C#右下角的小箭頭圖標和文件夾圖標是視覺指示器,該文件和文件夾與項目中的其他文件和文件夾不同。 實際上,該小圖標覆蓋類似於Windows為快捷方式添加的內容,因此,如果您了解快捷方式是一個“指向”另一個文件的文件,則應該理解這些是項目外文件的快捷方式,但包含在其中作為您項目的一部分。

無論如何,它按設計工作。

您需要找到另一種方式來做您想做的事情,但是您沒有描述為什么要在項目中包含引用您的軟件包的文件,因此我無法提供直接建議。 最好的建議是,如果您對ASP.NET和ASP.NET Core很有經驗,請考慮一下ASP.NET過去如何直接從web.config中讀取許多設置,但是ASP.NET Core而是使用生成器模式,因此用戶不必被迫將設置存儲在web.config中,並且可以將設置存儲在所需的任何位置。 如果您的操作相似,那么如果您為包用戶提供了一個可以覆蓋的配置生成器,而不是在項目中擁有一個文件,他們每次升級到該文件時都必須對其進行編輯和覆蓋,則可以為他們帶來更好的體驗您的軟件包的新版本。

無法在.net Core中復制帶有nuget包的文件夾

是的,就像齊夫坎所說:

僅在使用packages.config時才支持將文件復制到使用nuget包的項目中

但是,我們可以使用解決方法來解決此問題。 我們可以在xx.targets文件中添加一個副本任務,並設置在\\ build文件夾此文件中的.nuspec文件。

mypackage.targets文件的內容:

<Target Name="CopyFile" AfterTargets="AfterBuild">
  <ItemGroup>
    <CopyFiles Include="$(NuGetPackageRoot)\mypackage\4.0.0\cs\*.*\**" />
  </ItemGroup>

   <Copy  
      SourceFiles="@(CopyFiles)"  
      DestinationFolder="$(ProjectDir)"  
   /> 
</Target>

.nuspec文件:

 <file src="xxx\xxx\mypackage.targets" target="build" />

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM