Dot-Net

如何在建構後事件中獲取版本號

  • May 31, 2013

我想使用建構後事件自動創建一個 nuget 包,然後將其複製到我們網路上的共享文件夾中,如下所示(版本號 1.0.0.0. 在 MyLib.nuspec 文件中指定):

nuget.exe pack "$(SolutionDir)MyLib.nuspec"
xcopy /Y "$(TargetDir)MyLib.1.0.0.0.nupkg" \\folder\subfolder\NuGetPackages

這可行,但現在我想更新此腳本,以便它也包含程序集版本,但我無法在建構後事件中獲取程序集版本。我需要這樣的東西:

nuget.exe pack -Version $(AssemblyVersion) "$(SolutionDir)MyLib.nuspec"
xcopy /Y "$(TargetDir)MyLib." + $(AssemblyVersion) + ".nupkg" \\folder\subfolder\NuGetPackages

但是 $(AssemblyVersion) 變數不存在……有什麼想法嗎?

這個文章建構腳本對我有用。它在每個建構中打包並發布我的開發版本。很簡單。

del $(ProjectDir)bin\Debug\*.nupkg
"$(ProjectDir)NuGet.exe" pack "$(ProjectDir)MyProject.csproj"
forfiles /P $(ProjectDir)bin\Debug\ /m *.nupkg /c "cmd /c "$(ProjectDir)NuGet.exe" push @FILE -Source \\SHARE\NuGet"

嘗試這個:

編輯您的 .csproj 文件並添加此塊:

<Target Name="AfterBuild">
   <GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
       <Output TaskParameter="Assemblies" ItemName="CurrentAssembly" />
   </GetAssemblyIdentity>
   <Exec Command="xcopy /Y $(TargetDir)MyLib.%(CurrentAssembly.Version).nupkg \\folder\subfolder\NuGetPackages"></Exec>
</Target>

引用自:https://stackoverflow.com/questions/7486618