Skip to content

System.ArgumentException occurring only in single-file published application #5852

Closed

Description

@francescomazzurco

Hi,

The following line of code:

var versionInfo = FileVersionInfo.GetVersionInfo(typeof(RepositoryWriter).Assembly.Location);

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)

Thanks

Activity

  1. michaelgsharp commented on Jul 22, 2021

    @michaelgsharp
    Contributor

    How are you publishing everything as a single file? Are you using something to embed all the resources into a single .dll?

  2. francescomazzurco commented on Jul 23, 2021

    @francescomazzurco
    Author

    Yes, I am using the option <IncludeNativeLibrariesForSelfExtract>True</IncludeNativeLibrariesForSelfExtract> in my PublishProfile in order to get a single file.

  3. pplusawork commented on Jul 23, 2021

    @pplusawork

    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.

  4. rosebyte commented on Sep 3, 2026

    @rosebyte
    Member

    If I don't miss anything, this was fixed in 4512.

  5. locked and limited conversation to collaborators on Oct 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions