diff --git a/.github/workflows/linux-cpu-x64-build.yml b/.github/workflows/linux-cpu-x64-build.yml
index 2e1c03aab..744fa567a 100644
--- a/.github/workflows/linux-cpu-x64-build.yml
+++ b/.github/workflows/linux-cpu-x64-build.yml
@@ -4,10 +4,10 @@ concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
- ort_dir: "onnxruntime-linux-x64-1.17.3"
- ort_zip: "onnxruntime-linux-x64-1.17.3.tgz"
- ort_url: "https://github.com/microsoft/onnxruntime/releases/download/v1.17.3/onnxruntime-linux-x64-1.17.3.tgz"
-
+ ORT_NIGHTLY_REST_API: "https://feeds.dev.azure.com/aiinfra/PublicPackages/_apis/packaging/Feeds/ORT-Nightly/packages?packageNameQuery=Microsoft.ML.OnnxRuntime&api-version=6.0-preview.1"
+ ORT_PACKAGE_NAME: "Microsoft.ML.OnnxRuntime"
+ ORT_NIGHTLY_SOURCE: "https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/ORT-Nightly/nuget/v3/index.json"
+ NUGET_EXE: "mono /usr/local/bin/nuget.exe"
jobs:
linux_cpu_x64:
runs-on: [ "self-hosted", "1ES.Pool=onnxruntime-genai-Ubuntu2204-AMD-CPU" ]
@@ -16,19 +16,49 @@ jobs:
uses: actions/checkout@v4
with:
submodules: true
+ - name: install Mono and Nuget
+ run: |
+ sudo apt install ca-certificates gnupg
+ sudo gpg --homedir /tmp --no-default-keyring --keyring /usr/share/keyrings/mono-official-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
+ echo "deb [signed-by=/usr/share/keyrings/mono-official-archive-keyring.gpg] https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
+ sudo apt update
+ sudo apt install -y mono-devel
+ sudo curl -o /usr/local/bin/nuget.exe https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
+ sudo chmod +x /usr/local/bin/nuget.exe
+
+ - name: Install jq and dotnet
+ run: |
+ wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
+ sudo dpkg -i packages-microsoft-prod.deb
+ rm packages-microsoft-prod.deb
+ sudo apt-get update && sudo apt-get install -y dotnet-sdk-8.0 jq
- - name: Download OnnxRuntime
+ - name: Get the Latest OnnxRuntime Nightly Version
run: |
- curl -L -o ${{ env.ort_zip }} ${{ env.ort_url }}
+ ORT_NIGHTLY_VERSION=$(curl -s "${{ env.ORT_NIGHTLY_REST_API }}" | jq -r '.value[0].versions[0].normalizedVersion')
+ echo "$ORT_NIGHTLY_VERSION"
+ echo "ORT_NIGHTLY_VERSION=$ORT_NIGHTLY_VERSION" >> $GITHUB_ENV
- - name: Unzip OnnxRuntime
+ - name: Download OnnxRuntime Nightly
run: |
- tar -xzf ${{ env.ort_zip }}
- rm ${{ env.ort_zip }}
+ ${{ env.NUGET_EXE }} install ${{ env.ORT_PACKAGE_NAME }} -version ${{ env.ORT_NIGHTLY_VERSION }} -x
+ continue-on-error: true
+
+ - name: list files
+ shell: bash
+ run: |
+ ls -l
+ ls -R ${{ env.ORT_PACKAGE_NAME }}
+ continue-on-error: true
- - name: Rename OnnxRuntime to ort
+# TODO: Find out why do we need to to have libonnxruntime.so.$ort_version
+ - name: Extra OnnxRuntime library and header files
run: |
- mv ${{ env.ort_dir }} ort
+ mkdir -p ort/lib
+ mv ${{ env.ORT_PACKAGE_NAME }}/build/native/include ort/
+ mv ${{ env.ORT_PACKAGE_NAME }}/runtimes/linux-x64/native/* ort/lib/
+ ort_version=$(echo ${{ env.ORT_NIGHTLY_VERSION }} | cut -d- -f1-1)
+ cp ort/lib/libonnxruntime.so ort/lib/libonnxruntime.so.$ort_version
- name: Build with CMake and GCC
run: |
diff --git a/.github/workflows/linux-gpu-x64-build.yml b/.github/workflows/linux-gpu-x64-build.yml
index c1e51251b..123ff5f75 100644
--- a/.github/workflows/linux-gpu-x64-build.yml
+++ b/.github/workflows/linux-gpu-x64-build.yml
@@ -6,9 +6,11 @@ concurrency:
cancel-in-progress: true
env:
- ort_dir: "onnxruntime-linux-x64-gpu-1.17.3"
- ort_zip: "onnxruntime-linux-x64-gpu-1.17.3.tgz"
- ort_url: "https://github.com/microsoft/onnxruntime/releases/download/v1.17.3/onnxruntime-linux-x64-gpu-1.17.3.tgz"
+ ORT_NIGHTLY_REST_API: "https://feeds.dev.azure.com/aiinfra/PublicPackages/_apis/packaging/Feeds/ORT-Nightly/packages?packageNameQuery=Microsoft.ML.OnnxRuntime.Gpu.Linux&api-version=6.0-preview.1"
+ ORT_PACKAGE_NAME: Microsoft.ML.OnnxRuntime.Gpu.Linux
+ ORT_NIGHTLY_SOURCE: "https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/ORT-Nightly/nuget/v3/index.json"
+ NUGET_EXE: "mono /usr/local/bin/nuget.exe"
+
jobs:
linux-cuda-x64-build:
@@ -29,19 +31,49 @@ jobs:
clean: true
path: manylinux
submodules: true
+ - name: install Mono and Nuget
+ run: |
+ sudo apt install ca-certificates gnupg
+ sudo gpg --homedir /tmp --no-default-keyring --keyring /usr/share/keyrings/mono-official-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
+ echo "deb [signed-by=/usr/share/keyrings/mono-official-archive-keyring.gpg] https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
+ sudo apt update
+ sudo apt install -y mono-devel
+ sudo curl -o /usr/local/bin/nuget.exe https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
+ sudo chmod +x /usr/local/bin/nuget.exe
+
+ - name: Install jq and dotnet
+ run: |
+ wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
+ sudo dpkg -i packages-microsoft-prod.deb
+ rm packages-microsoft-prod.deb
+ sudo apt-get update && sudo apt-get install -y dotnet-sdk-8.0 jq
- name: Download OnnxRuntime
run: |
- curl -L -o ${{ env.ort_zip }} ${{ env.ort_url }}
+ ORT_NIGHTLY_VERSION=$(curl -s "${{ env.ORT_NIGHTLY_REST_API }}" | jq -r '.value[0].versions[0].normalizedVersion')
+ echo "$ORT_NIGHTLY_VERSION"
+ echo "ORT_NIGHTLY_VERSION=$ORT_NIGHTLY_VERSION" >> $GITHUB_ENV
- - name: Unzip OnnxRuntime
+ - name: Download OnnxRuntime Nightly
+ run: |
+ mono /usr/local/bin/nuget.exe install ${{ env.ORT_PACKAGE_NAME }} -version ${{ env.ORT_NIGHTLY_VERSION }} -x
+ continue-on-error: true
+ - name: list files
+ shell: bash
run: |
- tar -xzf ${{ env.ort_zip }}
- rm ${{ env.ort_zip }}
+ ls -l
+ ls -R ${{ env.ORT_PACKAGE_NAME }}
+ continue-on-error: true
- - name: Rename OnnxRuntime to ort
+# TODO: Find out why do we need to to have libonnxruntime.so.$ort_version
+ - name: Extra OnnxRuntime library and header files
run: |
- mv ${{ env.ort_dir }} ort
+ mkdir -p ort/lib
+ mv ${{ env.ORT_PACKAGE_NAME }}/buildTransitive/native/include ort/
+ mv ${{ env.ORT_PACKAGE_NAME }}/runtimes/linux-x64/native/* ort/lib/
+ ort_version=$(echo ${{ env.ORT_NIGHTLY_VERSION }} | cut -d- -f1-1)
+ cp ort/lib/libonnxruntime.so ort/lib/libonnxruntime.so.$ort_version
+
- name: Get Docker Image
run: |
@@ -78,7 +110,7 @@ jobs:
--volume $GITHUB_WORKSPACE:/ort_genai_src \
-w /ort_genai_src onnxruntimecudabuildx64 \
bash -c " \
- /usr/bin/cmake --build --preset linux_gcc_cuda_release --parallel $( nproc )"
+ /usr/bin/cmake --build --preset linux_gcc_cuda_release"
- name: Get HuggingFace Token
run: |
diff --git a/.github/workflows/mac-cpu-arm64-build.yml b/.github/workflows/mac-cpu-arm64-build.yml
index 9cb9cdc46..aba92d017 100644
--- a/.github/workflows/mac-cpu-arm64-build.yml
+++ b/.github/workflows/mac-cpu-arm64-build.yml
@@ -4,9 +4,8 @@ concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
- ort_dir: "onnxruntime-osx-arm64-1.17.3"
- ort_zip: "onnxruntime-osx-arm64-1.17.3.tgz"
- ort_url: "https://github.com/microsoft/onnxruntime/releases/download/v1.17.3/onnxruntime-osx-arm64-1.17.3.tgz"
+ ORT_NIGHTLY_REST_API: "https://feeds.dev.azure.com/aiinfra/PublicPackages/_apis/packaging/Feeds/ORT-Nightly/packages?packageNameQuery=Microsoft.ML.OnnxRuntime&api-version=6.0-preview.1"
+ ORT_PACKAGE_NAME: "Microsoft.ML.OnnxRuntime"
jobs:
mac-cpu-arm64-build:
runs-on: macos-latest
@@ -16,22 +15,21 @@ jobs:
with:
submodules: true
- - name: Install ninja
+ - name: Get the Latest OnnxRuntime Nightly Version
run: |
- brew install ninja
-
- - name: Download OnnxRuntime
+ ORT_NIGHTLY_VERSION=$(curl -s "${{ env.ORT_NIGHTLY_REST_API }}" | jq -r '.value[0].versions[0].normalizedVersion')
+ echo "$ORT_NIGHTLY_VERSION"
+ echo "ORT_NIGHTLY_VERSION=$ORT_NIGHTLY_VERSION" >> $GITHUB_ENV
+ - name: Download OnnxRuntime Nightly
run: |
- curl -L -o ${{ env.ort_zip }} ${{ env.ort_url }}
+ nuget install ${{ env.ORT_PACKAGE_NAME }} -version ${{ env.ORT_NIGHTLY_VERSION }} -x
- - name: Unzip OnnxRuntime
+ - name: Extra OnnxRuntime library and header files
run: |
- tar -xzf ${{ env.ort_zip }}
- rm ${{ env.ort_zip }}
+ mkdir -p ort/lib
+ mv ${{ env.ORT_PACKAGE_NAME }}/build/native/include ort/
+ mv ${{ env.ORT_PACKAGE_NAME }}/runtimes/osx-arm64/native/* ort/lib/
- - name: Rename OnnxRuntime to ort
- run: |
- mv ${{ env.ort_dir }} ort
- name: Configure CMake
run: |
diff --git a/.github/workflows/win-cpu-arm64-build.yml b/.github/workflows/win-cpu-arm64-build.yml
index 916af3009..ce3bfcf4b 100644
--- a/.github/workflows/win-cpu-arm64-build.yml
+++ b/.github/workflows/win-cpu-arm64-build.yml
@@ -53,6 +53,11 @@ jobs:
run: |
cmake --build --preset windows_arm64_cpu_release --parallel
+ - name: Build the C# API and Run the C# Tests
+ run: |
+ cd test\csharp
+ dotnet test /p:NativeBuildOutputDir="$env:GITHUB_WORKSPACE\$env:binaryDir\Release"
+
- name: Install the Python Wheel and Test Dependencies
run: |
python -m pip install (Get-ChildItem ("$env:binaryDir\wheel\*.whl"))
@@ -62,10 +67,7 @@ jobs:
run: |
python test/python/test_onnxruntime_genai.py --cwd "test\python" --test_models "test\test_models"
- - name: Build the C# API and Run the C# Tests
- run: |
- cd test\csharp
- dotnet test /p:NativeBuildOutputDir="$env:GITHUB_WORKSPACE\$env:binaryDir\Release"
+
- name: Verify Build Artifacts
if: always()
diff --git a/.github/workflows/win-cpu-x64-build.yml b/.github/workflows/win-cpu-x64-build.yml
index ca0bb6b5b..cf5614dee 100644
--- a/.github/workflows/win-cpu-x64-build.yml
+++ b/.github/workflows/win-cpu-x64-build.yml
@@ -11,10 +11,9 @@ concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
- ort_dir: "onnxruntime-win-x64-1.17.3"
- ort_zip: "$(ort_dir).zip"
- ort_url: "https://github.com/microsoft/onnxruntime/releases/download/v1.17.3/$(ort_zip)"
binaryDir: 'build/cpu'
+ ORT_NIGHTLY_REST_API: "https://feeds.dev.azure.com/aiinfra/PublicPackages/_apis/packaging/Feeds/ORT-Nightly/packages?packageNameQuery=Microsoft.ML.OnnxRuntime&api-version=6.0-preview.1"
+ ORT_PACKAGE_NAME: "Microsoft.ML.OnnxRuntime"
jobs:
windows-cpu-x64-build:
@@ -33,19 +32,32 @@ jobs:
with:
vs-version: '17.5'
- - name: Download OnnxRuntime
+ - uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: '6.0.x'
+
+ - name : Install jq and nuget
run: |
- $env:ort_url = "https://github.com/microsoft/onnxruntime/releases/download/v1.17.3/onnxruntime-win-x64-1.17.3.zip"
- Invoke-WebRequest -Uri $env:ort_url -OutFile $env:ort_zip
+ choco install -y jq curl
- - name: Unzip OnnxRuntime
+ - name: Get the Latest OnnxRuntime Nightly Version
+ shell: pwsh
run: |
- Expand-Archive $env:ort_zip -DestinationPath .
- Remove-Item -Path $env:ort_zip
+ $ORT_NIGHTLY_VERSION = $(curl -s "${{ env.ORT_NIGHTLY_REST_API }}" | jq -r '.value[0].versions[0].normalizedVersion')
+ echo "$ORT_NIGHTLY_VERSION"
+ "ORT_NIGHTLY_VERSION=$ORT_NIGHTLY_VERSION" | Out-File -FilePath $env:GITHUB_ENV -Append
+ - name: Download OnnxRuntime Nightly
+ run: |
+ nuget install ${{ env.ORT_PACKAGE_NAME }} -version ${{ env.ORT_NIGHTLY_VERSION }} -x -NonInteractive
+
+ - run: Get-ChildItem ${{ env.ORT_PACKAGE_NAME }} -Recurse
+ continue-on-error: true
- - name: Rename OnnxRuntime to ort
+ - name: Extra OnnxRuntime library and header files
run: |
- Rename-Item -Path $env:ort_dir -NewName ort
+ mkdir ort/lib
+ move ${{ env.ORT_PACKAGE_NAME }}/build/native/include ort/
+ move ${{ env.ORT_PACKAGE_NAME }}/runtimes/win-x64/native/* ort/lib/
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
@@ -60,6 +72,11 @@ jobs:
run: |
cmake --build --preset windows_x64_cpu_release --parallel
+ - name: Build the C# API and Run the C# Tests
+ run: |
+ cd test\csharp
+ dotnet test /p:NativeBuildOutputDir="$env:GITHUB_WORKSPACE\$env:binaryDir\Release"
+
- name: Install the python wheel and test dependencies
run: |
python -m pip install (Get-ChildItem ("$env:binaryDir\wheel\*.whl"))
@@ -76,10 +93,7 @@ jobs:
run: |
python test/python/test_onnxruntime_genai.py --cwd "test\python" --test_models "test\test_models"
- - name: Build the C# API and Run the C# Tests
- run: |
- cd test\csharp
- dotnet test /p:NativeBuildOutputDir="$env:GITHUB_WORKSPACE\$env:binaryDir\Release"
+
- name: Verify Build Artifacts
if: always()
diff --git a/.github/workflows/win-cuda-x64-build.yml b/.github/workflows/win-cuda-x64-build.yml
index a9f602ef8..f0cebbae8 100644
--- a/.github/workflows/win-cuda-x64-build.yml
+++ b/.github/workflows/win-cuda-x64-build.yml
@@ -8,14 +8,12 @@ concurrency:
env:
AZCOPY_AUTO_LOGIN_TYPE: MSI
AZCOPY_MSI_CLIENT_ID: 63b63039-6328-442f-954b-5a64d124e5b4
- ort_dir: "onnxruntime-win-x64-gpu-1.17.3"
- ort_zip: "onnxruntime-win-x64-gpu-1.17.3.zip"
- ort_url: "https://github.com/microsoft/onnxruntime/releases/download/v1.17.3/onnxruntime-win-x64-gpu-1.17.3.zip"
cuda_dir: "${{ github.workspace }}\\cuda_sdk"
cuda_version: "11.8"
CUDA_PATH: ${{ github.workspace }}\\cuda_sdk\\v11.8
binaryDir: 'build/cuda'
-
+ ORT_NIGHTLY_REST_API: "https://feeds.dev.azure.com/aiinfra/PublicPackages/_apis/packaging/Feeds/ORT-Nightly/packages?packageNameQuery=Microsoft.ML.OnnxRuntime.Gpu.Windows&api-version=6.0-preview.1"
+ ORT_PACKAGE_NAME: "Microsoft.ML.OnnxRuntime.Gpu.Windows"
jobs:
windows-cuda-x64-build:
@@ -35,17 +33,32 @@ jobs:
run: |
azcopy.exe cp --recursive "https://lotusscus.blob.core.windows.net/models/cuda_sdk/v${{ env.cuda_version }}" ${{ env.cuda_dir}}
- - name: Download OnnxRuntime
+ - uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: '6.0.x'
+
+ - name : Install jq and curl
run: |
- Invoke-WebRequest -Uri $env:ort_url -OutFile $env:ort_zip
+ choco install -y jq curl
- - name: Unzip OnnxRuntime
+ - name: Get the Latest OnnxRuntime Nightly Version
+ shell: pwsh
+ run: |
+ $ORT_NIGHTLY_VERSION=$(curl -s "${{ env.ORT_NIGHTLY_REST_API }}" | jq -r '.value[0].versions[0].normalizedVersion')
+ echo "$ORT_NIGHTLY_VERSION"
+ "ORT_NIGHTLY_VERSION=$ORT_NIGHTLY_VERSION" | Out-File -FilePath $env:GITHUB_ENV -Append
+ - name: Download OnnxRuntime Nightly
run: |
- Expand-Archive $env:ort_zip -DestinationPath .
- Remove-Item -Path $env:ort_zip
- - name: Rename OnnxRuntime to ort
+ nuget install ${{ env.ORT_PACKAGE_NAME }} -version ${{ env.ORT_NIGHTLY_VERSION }} -ExcludeVersion -NonInteractive
+
+ - run: Get-ChildItem ${{ env.ORT_PACKAGE_NAME }} -Recurse
+ continue-on-error: true
+
+ - name: Extra OnnxRuntime library and header files
run: |
- Rename-Item -Path $env:ort_dir -NewName ort
+ mkdir ort/lib
+ move ${{ env.ORT_PACKAGE_NAME }}/buildTransitive/native/include ort/
+ move ${{ env.ORT_PACKAGE_NAME }}/runtimes/win-x64/native/* ort/lib/
- name: Configure CMake
run: |
@@ -59,6 +72,11 @@ jobs:
run: |
echo "${{ env.cuda_dir }}\\v${{ env.cuda_version }}\\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
+ - name: Build the C# API and Run the C# Tests
+ run: |
+ cd test\csharp
+ dotnet test /p:Configuration=release /p:NativeBuildOutputDir="$env:GITHUB_WORKSPACE\$env:binaryDir\Release"
+
- name: Install the Python Wheel and Test Dependencies
run: |
python -m pip install (Get-ChildItem ("$env:binaryDir\wheel\*.whl"))
@@ -75,10 +93,6 @@ jobs:
run: |
python test/python/test_onnxruntime_genai.py --cwd "test\python" --test_models "test\test_models"
- - name: Build the C# API and Run the C# Tests
- run: |
- cd test\csharp
- dotnet test /p:Configuration=release /p:NativeBuildOutputDir="$env:GITHUB_WORKSPACE\$env:binaryDir\Release"
- name: Verify Build Artifacts
if: always()
diff --git a/cmake/presets/CMakeMacOSConfigPresets.json b/cmake/presets/CMakeMacOSConfigPresets.json
index cd0c0a0b9..1ea6d85c8 100644
--- a/cmake/presets/CMakeMacOSConfigPresets.json
+++ b/cmake/presets/CMakeMacOSConfigPresets.json
@@ -6,7 +6,7 @@
"configurePresets": [
{
"name": "macos_default",
- "generator": "Ninja",
+ "generator": "Unix Makefiles",
"binaryDir": "${sourceDir}/build/cpu",
"cacheVariables": {
"CMAKE_POSITION_INDEPENDENT_CODE": "ON",
diff --git a/nuget.config b/nuget.config
index 3e0389a52..63a200340 100644
--- a/nuget.config
+++ b/nuget.config
@@ -3,11 +3,14 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/onnxruntime-genai.sln b/onnxruntime-genai.sln
new file mode 100644
index 000000000..5e59cc82e
--- /dev/null
+++ b/onnxruntime-genai.sln
@@ -0,0 +1,36 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.0.31903.59
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{2253BDCC-33C9-431E-889A-56E3E75D10BA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.ML.OnnxRuntimeGenAI", "src\csharp\Microsoft.ML.OnnxRuntimeGenAI.csproj", "{CA0EC087-3AF5-44D5-93F0-489420EBA014}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{505E2406-98C2-46DD-973A-3CEB95CF3626}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.ML.OnnxRuntimeGenAI.Tests", "test\csharp\Microsoft.ML.OnnxRuntimeGenAI.Tests.csproj", "{24C405DE-9E56-4E1F-BDDF-332DFD8BCB73}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {CA0EC087-3AF5-44D5-93F0-489420EBA014}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CA0EC087-3AF5-44D5-93F0-489420EBA014}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CA0EC087-3AF5-44D5-93F0-489420EBA014}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CA0EC087-3AF5-44D5-93F0-489420EBA014}.Release|Any CPU.Build.0 = Release|Any CPU
+ {24C405DE-9E56-4E1F-BDDF-332DFD8BCB73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {24C405DE-9E56-4E1F-BDDF-332DFD8BCB73}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {24C405DE-9E56-4E1F-BDDF-332DFD8BCB73}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {24C405DE-9E56-4E1F-BDDF-332DFD8BCB73}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {CA0EC087-3AF5-44D5-93F0-489420EBA014} = {2253BDCC-33C9-431E-889A-56E3E75D10BA}
+ {24C405DE-9E56-4E1F-BDDF-332DFD8BCB73} = {505E2406-98C2-46DD-973A-3CEB95CF3626}
+ EndGlobalSection
+EndGlobal
diff --git a/test/csharp/Microsoft.OnnxRuntimeGenAI.Tests.csproj b/test/csharp/Microsoft.ML.OnnxRuntimeGenAI.Tests.csproj
similarity index 92%
rename from test/csharp/Microsoft.OnnxRuntimeGenAI.Tests.csproj
rename to test/csharp/Microsoft.ML.OnnxRuntimeGenAI.Tests.csproj
index e4ec8e6d8..978deb04e 100644
--- a/test/csharp/Microsoft.OnnxRuntimeGenAI.Tests.csproj
+++ b/test/csharp/Microsoft.ML.OnnxRuntimeGenAI.Tests.csproj
@@ -12,7 +12,8 @@
default
True
Debug;RelWithDebInfo;Release
-
+ https://api.nuget.org/v3/index.json
+ $(RestoreAdditionalProjectSources);$(RestoreSources)
Microsoft.ML.OnnxRuntimeGenAI.Tests
Microsoft.ML.OnnxRuntimeGenAI.Tests