2017-06-25 65 views
2

請考慮以下nuspec文件:如何在我的nuspec文件中設置'複製到輸出目錄'屬性?

<?xml version="1.0"?> 
<package > 
    [SOME METADATA] 
    <files> 
    <file src="bin\x64\$configuration$\GR*.filetype" target="content\" /> 
    </files> 
</package> 

上述內容已經成功包裝了以「GR」的文件類型的文件,並將它們添加到我的新的,引用的解決方案。

問題是我希望這些文件總是被複制到輸出目錄。我可以通過nuspec來做到這一點,而無需手動修改我的新解決方案中的屬性?

+1

的可能重複的[設置內容文件「複製本地:總是」在NuGet包(https://stackoverflow.com/questions/21143817/set-content-files-to-copy-local-永遠在一個nuget包) –

回答

5

如何在我的nuspec文件中設置'複製到輸出目錄'屬性?

馬丁指出了正確的方向,我也有同樣的要求,kjbartel`s answer對我很好。我在這裏發佈的答案更詳細的問題,希望這可以給你一些幫助。

要解決這個問題,你可以按照下面的步驟:

  1. 添加xx.targets文件在項目文件夾,確保目標文件的名稱是相同的名稱作爲包ID( TestDemo是我的包ID,所以.targets的名稱是TestDemo.targets)。

  2. 添加下面的代碼在目標文件:

    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <ItemGroup> 
        <None Include="$(MSBuildThisFileDirectory)GRabc.txt"> 
        <Link>GRabc.txt</Link> 
        <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
        </None> 
    </ItemGroup> 
    </Project> 
    

注:「$(MSBuildThisFileDirectory)」的路徑應該是相對路徑,如果你不熟悉它,你可以使用絕對路徑。

  1. 在nuspec文件中,將所需文件與目標文件一起添加到Build目錄。

    <files> 
        <file src="bin\x64\Debug\GR*.txt" target="Build\" /> 
        <file src="TestDemo.targets" target="Build\" /> 
        <file src="bin\Debug\TestDemo.dll" target="lib\462" /> 
        </files> 
    
  2. 打包此包,然後將其添加到其他項目進行測試,它工作正常。

+0

這是優秀的!會放棄這一點,非常感謝。 –

相關問題