簡體   English   中英

找不到對庫的引用

[英]Can't find the reference to a library

嘗試將文件從路徑A陰影復制到路徑B,但它不斷拋出錯誤消息

{“無法加載文件或程序集'AlphaVSS.x64,版本= 1.4.0.0,文化=中性,PublicKeyToken = 959d3993561034e3'或其依賴項之一。嘗試加載格式不正確的程序。”}

我嘗試的代碼

  Public Sub copyFile(baza As String, destination As String)

        If IO.File.Exists(baza) Then

            Dim myFileInfo As FileInfo
            myFileInfo = New FileInfo(baza)

            Dim _volume As String = myFileInfo.Directory.Root.Name

            Dim _vssImplementation As IVssImplementation = VssUtils.LoadImplementation()
            Dim _backup As IVssBackupComponents = _vssImplementation.CreateVssBackupComponents()

            _backup.InitializeForBackup(Nothing)

            _backup.GatherWriterMetadata()

            _backup.SetContext(VssVolumeSnapshotAttributes.Persistent Or VssVolumeSnapshotAttributes.NoAutoRelease)
            _backup.SetBackupState(False, True, Alphaleonis.Win32.Vss.VssBackupType.Full, False)

            Dim MyGuid01 As Guid = _backup.StartSnapshotSet()
            Dim MyGuid02 As Guid = _backup.AddToSnapshotSet(_volume, Guid.Empty)

            _backup.PrepareForBackup()
            _backup.DoSnapshotSet()

            _backup.ExposeSnapshot(MyGuid02, Nothing, VssVolumeSnapshotAttributes.ExposedLocally, "L:")

            Dim sVSSFile2 As String = baza.Replace(_volume, "L:\")

            If (File.Exists(sVSSFile2)) Then
                System.IO.File.Copy(sVSSFile2, destination + "\" + System.IO.Path.GetFileName(baza), True)

                For Each prop As VssSnapshotProperties In _backup.QuerySnapshots
                    If (prop.ExposedName = "L:\") Then
                        Console.WriteLine("File found !")
                        _backup.DeleteSnapshot(prop.SnapshotId, True)
                    End If
                Next

                _backup = Nothing

                Console.WriteLine("File copied")

            Else

                Console.WriteLine("------------------------------------------")
                Console.WriteLine("File not exist: " + baza)

            End If
        End If
    End Sub

我有VSS nuget軟件包和參考

在此處輸入圖片說明

它在網上拋出錯誤

Dim _vssImplementation As IVssImplementation = VssUtils.LoadImplementation()

閱讀文檔 使用包裝時有要求

  1. 必須在運行任何使用AlphaVSS的應用程序的計算機上安裝Visual C ++ 2017可再發行組件

  2. 請注意,如果平台目標設置為任何CPU,則必須使用未選中的 “首選32位”來構建應用程序。 還要注意,您的應用程序必須為64位而構建,才能在64位系統上運行(或任何優先關閉32位的CPU),而必須在32位中才能在32位系統上運行。

最初,我遇到的錯誤與您相同,直到取消選中“首選32位”,然后該行代碼才起作用。

試圖加載格式錯誤的程序

此消息表示您正在嘗試加載可執行文件(.dll,.exe等),該文件無法由進程(或Windows本身,視情況而定)運行。

導致此錯誤的最常見原因是嘗試將32位代碼加載到64位進程中(反之亦然)。 64位進程只能運行64位代碼,而32位進程只能運行32位代碼。

由於是AlphaVSS.x64程序集出了問題,因此您的項目很可能被編譯為32位可執行文件。 您應該刪除該引用, 或者將項目更改為僅針對x64(請注意,如果執行x64,則將無法在32位計算機上運行應用程序)。

手動解決問題。

用自己的記事本打開* .csproj文件

 <PropertyGroup Condition="............">
.....other props...
<!-- Just add the following line here -->
<Prefer32Bit>false</Prefer32Bit>

 </PropertyGroup>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM