我正在嘗試爲.csproj文件創建nuget包,但希望包名與csroj文件不同(默認情況下),我不想指定.nuspec文件。有沒有辦法做到這一點?我只能在命令行選項中看到版本名稱覆蓋選項,而不是包名稱覆蓋選項。使用NuGet Pack時,是否可以在沒有nuspec文件的情況下指定包名?
我在TeamCity中這樣做,但這是重點。我想我需要將其他參數傳遞給NuGet pack命令?
謝謝,
我正在嘗試爲.csproj文件創建nuget包,但希望包名與csroj文件不同(默認情況下),我不想指定.nuspec文件。有沒有辦法做到這一點?我只能在命令行選項中看到版本名稱覆蓋選項,而不是包名稱覆蓋選項。使用NuGet Pack時,是否可以在沒有nuspec文件的情況下指定包名?
我在TeamCity中這樣做,但這是重點。我想我需要將其他參數傳遞給NuGet pack命令?
謝謝,
Nuget命令行不提供任何選項直接名稱更改。 http://docs.nuget.org/docs/reference/command-line-reference#Pack_Command
如果你想不同的項目和nuget包的名稱,你將不得不準備和編輯自定義nuspec文件。您也可以在創建包後使用例如手動方式進行手動操作。 NuGetPackage資源管理器。
從NuGet 4.0開始,現在可以在.csproj文件中指定包名和其他元數據作爲屬性。有關更多信息,請參閱https://docs.microsoft.com/en-us/nuget/guides/create-net-standard-packages-vs2017。
Nuget's Properties參數就是你要找的。
如果您的.nuspec
文件使用佔位符,那麼您可以通過Properties參數傳遞一個值。來自nuget docs:
屬性。指定以分號分隔的標記=值對列表,其中每個出現在.nuspec文件中的$ token $將被替換爲給定值。值可以是引號中的字符串。
所以nuget.exe -Properties id=someProject
將使用「someProject」的任何發生$id$
。
我想我可能不得不訴諸使用nuspec文件:-( – 2014-10-08 10:04:45