You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
System.ArgumentException occurring only in single-file published application #5852
Seems to create some problems when the application is published as a single file. I honestly don't have a full understanding on how some paths and locations behave in this scenario.
For completeness, here is the exception with its stack trace:
Training failed with the exception: System.ArgumentException: The path is empty. (Parameter 'path')`
at System.IO.Path.GetFullPath(String path)
at System.Diagnostics.FileVersionInfo.GetVersionInfo(String fileName)
at Microsoft.ML.RepositoryWriter.CreateNew(Stream stream, IExceptionContext ectx, Boolean useFileSystem)
at Microsoft.ML.ModelOperationsCatalog.Save(ITransformer model, DataViewSchema inputSchema, Stream stream)
at Microsoft.ML.AutoML.ModelContainer..ctor(MLContext mlContext, FileInfo fileInfo, ITransformer model, DataViewSchema modelInputSchema)
at Microsoft.ML.AutoML.RunnerUtil.TrainAndScorePipeline[TMetrics](MLContext context, SuggestedPipeline pipeline, IDataView trainData, IDataView validData, String groupId, String labelColumn, IMetricsAgent`1 metricsAgent, ITransformer preprocessorTransform, FileInfo modelFileInfo, DataViewSchema modelInputSchema, IChannel logger)
at Microsoft.ML.AutoML.Experiment`2.Execute()
at Microsoft.ML.AutoML.ExperimentBase`2.Execute(ColumnInformation columnInfo, DatasetColumnInfo[] columns, IEstimator`1 preFeaturizer, IProgress`1 progressHandler, IRunner`1 runner)
at Microsoft.ML.AutoML.ExperimentBase`2.ExecuteCrossValSummary(IDataView[] trainDatasets, ColumnInformation columnInfo, IDataView[] validationDatasets, IEstimator`1 preFeaturizer, IProgress`1 progressHandler)
at Microsoft.ML.AutoML.ExperimentBase`2.Execute(IDataView trainData, ColumnInformation columnInformation, IEstimator`1 preFeaturizer, IProgress`1 progressHandler)
at Microsoft.ML.AutoML.ExperimentBase`2.Execute(IDataView trainData, String labelColumnName, String samplingKeyColumn, IEstimator`1 preFeaturizer, IProgress`1 progressHandler)
Yes, I am using the option <IncludeNativeLibrariesForSelfExtract>True</IncludeNativeLibrariesForSelfExtract> in my PublishProfile in order to get a single file.
It looks like this is related to #4505 and PR #4512 which looks like it was blocked pending review due to code coverage?
In my case, I was using a self-contained Linux-x64 publish profile, and checking the "Produce single file" box, i.e. <PublishSingleFile>True</PublishSingleFile>. Setting that to false seems to be a reliable work around, though not ideal.
Activity
michaelgsharp commentedon Jul 22, 2021
How are you publishing everything as a single file? Are you using something to embed all the resources into a single .dll?
francescomazzurco commentedon Jul 23, 2021
Yes, I am using the option
<IncludeNativeLibrariesForSelfExtract>True</IncludeNativeLibrariesForSelfExtract>in my PublishProfile in order to get a single file.pplusawork commentedon Jul 23, 2021
It looks like this is related to #4505 and PR #4512 which looks like it was blocked pending review due to code coverage?
In my case, I was using a self-contained Linux-x64 publish profile, and checking the "Produce single file" box, i.e.
<PublishSingleFile>True</PublishSingleFile>. Setting that to false seems to be a reliable work around, though not ideal.rosebyte commentedon Sep 3, 2026
If I don't miss anything, this was fixed in 4512.