10

ここで説明するように、VisualStudioのビルドプロセスを通じてnugetパッケージを作成/プッシュしようとしています。

パッケージの作成は簡単です。

<Exec WorkingDirectory="$(ProjectDir)" Command="$(NuGetApp) pack $(ProjectFile) -OutputDirectory $(Deploy) -Verbose -Prop Configuration=Release"/>

$(Deploy)フォルダーに.nupkgファイルがあります。

しかし、それをプッシュできるようにするには、それを使用するために$(AssemblyVersion)が必要です:

<Exec Command="$(NuGetApp) push $(ProjectName)$(AssemblyVersion) -s $(NugetServer) $(NugetKey)" />

XMLReadで値を取得しようとしましたが、NugetSpecFileの値はAssemblyInfo.csのバージョンではなく「$version$」です。

<XmlRead XPath="/package/metadata/version" XmlFileName="$(NuSpecFile)">
      <Output TaskParameter="Value" PropertyName="AssemblyVersion" />
    </XmlRead>

「nugetpush」で使用できるようにバージョンにアクセスするにはどうすればよいですか?

4

1 に答える 1

17

これをやります:

<PropertyGroup>
    <MyAssemblies>somedll\the.dll</MyAssemblies>
  </PropertyGroup>

 <Target Name="RetrieveIdentities">
    <GetAssemblyIdentity
        AssemblyFiles="$(MyAssemblies)">
      <Output
          TaskParameter="Assemblies"
          ItemName="MyAssemblyIdentities"/>
    </GetAssemblyIdentity>

    <Message Text="Files: %(MyAssemblyIdentities.Version)"/>
  </Target>

ここから変更: dllのバージョンを読み取るためのMSBuildタスク

于 2012-05-23T08:41:33.190 に答える