2017-02-13 76 views
2

我創建了一個僅限內容的Nuget包,它向安裝到其中的項目添加文本文件。我檢查了項目沒有的文本文件,因爲我想在nuget restore期間恢復它。一切都很好,直到CI機器嘗試恢復包裝。恢復成功,但不添加文本文件。顯然,nuget認爲文本文件已經存在,因爲在項目文件中有對它的引用。僅限內容的Nuget包無法恢復內容

如何獲取nuget恢復文本文件?

本質上,我想要的行爲與DLL文件相同:安裝程序包時,將對DLL的引用添加到項目;當包被恢復時,DLL將被恢復以滿足項目文件中的引用。我想要相同的行爲,但對於文本文件。這可能嗎?

回答

0

我最終什麼事做是把文本文件導入這樣的頂級文件夾(從我.nuspec片段):

</metadata> 
    <files> 
     <file src="dictionary.txt" target="dictionary.txt" /> 
    </files> 
</package> 

所以在安裝包時,文件被放入/packages/MyPackage.0.0.6從.csproj的像這樣引用:

<ItemGroup> 
    <EmbeddedResource Include="$(SolutionDir)packages\MyPackage.0.0.6\dictionary.txt" /> 
</ItemGroup> 

然後將文件從的.cs這樣寫着:

var stream = Assembly.GetExecutingAssembly() 
      .GetManifestResourceStream(GetType(), "dictionary.txt"); 

這給我帶來了所需的行爲:當包被恢復時,文件被恢復並放在引用指向的地方。