diff --git a/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionOperation/GetBuildinPackageVersionOperation.cs b/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionOperation/GetBuildinPackageVersionOperation.cs
new file mode 100644
index 00000000..cd8e13bf
--- /dev/null
+++ b/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionOperation/GetBuildinPackageVersionOperation.cs
@@ -0,0 +1,82 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using YooAsset;
+
+///
+/// 获取包体里的内置资源清单版本
+///
+public class GetBuildinPackageVersionOperation : GameAsyncOperation
+{
+ private enum ESteps
+ {
+ None,
+ GetPackageVersion,
+ Done,
+ }
+
+ private readonly string _packageName;
+ private UnityWebTextRequestOperation _versionFileRequestOp;
+ private ESteps _steps = ESteps.None;
+
+ ///
+ /// 内置资源清单版本
+ ///
+ public string PackageVersion { private set; get; }
+
+ public GetBuildinPackageVersionOperation(string packageName)
+ {
+ _packageName = packageName;
+ }
+ protected override void OnStart()
+ {
+ _steps = ESteps.GetPackageVersion;
+ }
+ protected override void OnUpdate()
+ {
+ if (_steps == ESteps.None || _steps == ESteps.Done)
+ return;
+
+ if (_steps == ESteps.GetPackageVersion)
+ {
+ if (_versionFileRequestOp == null)
+ {
+ string filePath = GetBuildinPackageVersionFilePath();
+ string url = DownloadSystemHelper.ConvertToWWWPath(filePath);
+ _versionFileRequestOp = new UnityWebTextRequestOperation(url);
+ OperationSystem.StartOperation(_packageName, _versionFileRequestOp);
+ }
+
+ if (_versionFileRequestOp.IsDone == false)
+ return;
+
+ if (_versionFileRequestOp.Status == EOperationStatus.Succeed)
+ {
+ _steps = ESteps.Done;
+ Status = EOperationStatus.Succeed;
+ PackageVersion = _versionFileRequestOp.Result;
+ }
+ else
+ {
+ _steps = ESteps.Done;
+ Status = EOperationStatus.Failed;
+ Error = _versionFileRequestOp.Error;
+ }
+ }
+ }
+ protected override void OnAbort()
+ {
+ }
+
+ private string GetBuildinYooRoot()
+ {
+ return YooAssetSettingsData.GetYooDefaultBuildinRoot();
+ }
+ private string GetBuildinPackageVersionFilePath()
+ {
+ string fileRoot = GetBuildinYooRoot();
+ string fileName = YooAssetSettingsData.GetPackageVersionFileName(_packageName);
+ return PathUtility.Combine(fileRoot, _packageName, fileName);
+ }
+}
\ No newline at end of file
diff --git a/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionOperation/GetBuildinPackageVersionOperation.cs.meta b/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionOperation/GetBuildinPackageVersionOperation.cs.meta
new file mode 100644
index 00000000..d5ac0849
--- /dev/null
+++ b/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionOperation/GetBuildinPackageVersionOperation.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 609e1ce54918dab40900d532704b1187
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: