diff --git a/mlmodel/src/MILBlob/Blob/FileWriter.cpp b/mlmodel/src/MILBlob/Blob/FileWriter.cpp
index adc7bfcf..7b2bf9cc 100644
--- a/mlmodel/src/MILBlob/Blob/FileWriter.cpp
+++ b/mlmodel/src/MILBlob/Blob/FileWriter.cpp
@@ -8,8 +8,12 @@
 
 #include <cstdio>
 #include <stdexcept>
+
+// ORT_EDIT: Exclude mmap on Windows. Not used in this file anyway.
+#if !defined(_WIN32)
 #include <sys/mman.h>
 #include <sys/stat.h>
+#endif
 
 using namespace MILBlob;
 using namespace MILBlob::Blob;
diff --git a/mlmodel/src/MILBlob/Blob/FileWriter.hpp b/mlmodel/src/MILBlob/Blob/FileWriter.hpp
index 2bc99403..49239513 100644
--- a/mlmodel/src/MILBlob/Blob/FileWriter.hpp
+++ b/mlmodel/src/MILBlob/Blob/FileWriter.hpp
@@ -6,7 +6,8 @@
 #pragma once
 
 #include "MILBlob/Util/Span.hpp"
-
+// ORT_EDIT: add missing header
+#include <cstdint>
 #include <fstream>
 #include <string>
 #include <type_traits>
diff --git a/mlmodel/src/MILBlob/Fp16.cpp b/mlmodel/src/MILBlob/Fp16.cpp
index ae1e71a1..77a7161f 100644
--- a/mlmodel/src/MILBlob/Fp16.cpp
+++ b/mlmodel/src/MILBlob/Fp16.cpp
@@ -5,6 +5,8 @@
 
 #include "MILBlob/Fp16.hpp"
 
+// ORT_EDIT: Exclude clang specific pragmas from other builds
+#if defined(__clang__)
 // fp16 lib code has some conversion warnings we don't want to globally ignore
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wincompatible-pointer-types"
@@ -12,6 +14,9 @@
 #pragma clang diagnostic ignored "-Wconversion"
 #include "fp16/fp16.h"
 #pragma clang diagnostic pop
+#else
+#include "fp16/fp16.h"
+#endif
 
 using namespace MILBlob;
 
diff --git a/modelpackage/src/ModelPackage.cpp b/modelpackage/src/ModelPackage.cpp
index 8fee56b9..5508e316 100644
--- a/modelpackage/src/ModelPackage.cpp
+++ b/modelpackage/src/ModelPackage.cpp
@@ -26,7 +26,14 @@ namespace std {
 #else
 #error "missing required header <filesystem>"
 #endif
+
+// ORT_EDIT: Use UuidCreate on Windows.
+#if defined(_WIN32)
+#pragma comment(lib, "rpcrt4.lib")  // UuidCreate
+#include <windows.h>
+#else
 #include <uuid/uuid.h>
+#endif
 #include <vector>
 
 #if defined(__cplusplus)
@@ -187,7 +194,10 @@ public:
     ModelPackageItemInfo createFile(const std::string& name, const std::string& author, const std::string& description);
 };
 
+// ORT_EDIT: pragma only available on APPLE platforms
+#if defined(__APPLE__)
 #pragma mark ModelPackageImpl
+#endif
 
 ModelPackageImpl::ModelPackageImpl(const std::filesystem::path& path, bool createIfNecessary, bool readOnly)
 : m_packagePath(path),
@@ -372,6 +382,20 @@ std::filesystem::path ModelPackageImpl::getItemPath(const std::string& name, con
 }
 
 std::string ModelPackageImpl::generateIdentifier() const {
+// ORT_EDIT: Use built-in UUID generation on Windows
+#if defined(_WIN32)
+    UUID uuid;
+    UuidCreate(&uuid);
+
+    RPC_CSTR uuidStr;
+    UuidToStringA(&uuid, &uuidStr);
+
+    std::string uuidStrCpp(reinterpret_cast<char*>(uuidStr));
+
+    RpcStringFreeA(&uuidStr);
+
+    return uuidStrCpp;
+#else
     uuid_t uuid;
     
     // uuid_unparse generates a 36-character null-terminated string (37 bytes).
@@ -383,6 +407,7 @@ std::string ModelPackageImpl::generateIdentifier() const {
     uuid_unparse(uuid, buf);
         
     return std::string(buf);
+#endif
 }
 
 ModelPackageItemInfo ModelPackageImpl::createFile(const std::string& name, const std::string& author, const std::string& description) {
@@ -468,7 +493,14 @@ std::shared_ptr<ModelPackageItemInfo> ModelPackageImpl::findItem(const std::stri
     auto author = itemInfoEntry->getString(kModelPackageItemInfoAuthorKey);
     auto description = itemInfoEntry->getString(kModelPackageItemInfoDescriptionKey);
     
+// ORT_EDIT: need to use path.string() on Windows
+#if defined(_WIN32)
+    return std::make_shared<ModelPackageItemInfo>(std::make_shared<ModelPackageItemInfoImpl>(identifier, path.string(), name, author, description));
+
+#else
     return std::make_shared<ModelPackageItemInfo>(std::make_shared<ModelPackageItemInfoImpl>(identifier, path, name, author, description));
+#endif
+
 }
 
 std::shared_ptr<ModelPackageItemInfo> ModelPackageImpl::findItem(const std::string& name, const std::string& author) const
@@ -514,7 +546,9 @@ void ModelPackageImpl::removeItem(const std::string& identifier)
     }
     
     auto path = m_packageDataDirPath / itemInfoEntry->getString(kModelPackageItemInfoPathKey);
-    if (0 != std::remove(path.c_str())) {
+    // ORT_EDIT: std::remove doesn't work on Windows. Use std::filesystem::remove instead.
+    // if (0 != std::remove(path.c_str())) {
+    if (!std::filesystem::remove(path)) {
         throw std::runtime_error("Failed to remove file at path: " + path.string());
     }
     
@@ -525,13 +559,16 @@ bool ModelPackageImpl::isValid(const std::filesystem::path& path)
 {
     try {
         ModelPackageImpl(path, false, true);
-    } catch (std::runtime_error& e) {
+    } catch (std::runtime_error& /*e*/) {  // ORT_EDIT: comment out unused variable
         return false;
     }
     return true;
 }
 
+// ORT_EDIT: pragma only available on APPLE platforms
+#if defined(__APPLE__)
 #pragma mark ModelPackage
+#endif
 
 ModelPackage::ModelPackage(const std::string& packagePath, bool createIfNecessary, bool readOnly)
 : m_modelPackageImpl(std::make_shared<ModelPackageImpl>(packagePath, createIfNecessary, readOnly))
@@ -544,7 +581,12 @@ ModelPackage::~ModelPackage()
 
 std::string ModelPackage::path() const
 {
+// ORT_EDIT: Windows doesn't automatically convert to std::string as the native format could be char or wchar.
+#if defined(_WIN32)
+    return m_modelPackageImpl->path().string();
+#else
     return m_modelPackageImpl->path();
+#endif
 }
 
 std::string ModelPackage::setRootModel(const std::string& path, const std::string& name, const std::string& author, const std::string& description)
diff --git a/modelpackage/src/utils/JsonMap.hpp b/modelpackage/src/utils/JsonMap.hpp
index 0d7dc3f4..b700cfd5 100644
--- a/modelpackage/src/utils/JsonMap.hpp
+++ b/modelpackage/src/utils/JsonMap.hpp
@@ -10,7 +10,8 @@
 #include <iostream>
 #include <vector>
 #include <string>
-
+// ORT_EDIT: add missing header
+#include <memory>
 class JsonMapImpl;
 
 class JsonMap {
