Исключение при чтении манифеста из файла. Microsoft Word Надстройка ВСТО - PullRequest
1 голос
/ 29 января 2020

Я пытаюсь создать надстройку Microsoft Word, которая будет добавлять и фиксировать репо git каждый раз при сохранении документа Word, либо с автоматическим сохранением, либо с ручным сохранением. Мне удалось получить желаемую функциональность при запуске программы из Visual Studio (режим отладки). Когда я публикую sh и устанавливаю надстройку так, чтобы она запускалась при запуске Word, я получаю следующую ошибку:

enter image description here

Теперь, когда я Попытка добавить пакеты LibGit2Sharp NuGet, работающие в режиме отладки из Visual Studio, выдает мне эту ошибку:

enter image description here

и следующие сведения об ошибке:

Name: 
From: file:///C:/Users/short/OneDrive for Business/SCHOOL/JP/EZGit/EZGit/MicrosoftWordAddIn/bin/Debug/MicrosoftWordAddIn.vsto

************** Exception Text **************
System.Deployment.Application.InvalidDeploymentException: Exception reading manifest from file:///C:/Users/short/OneDrive%20for%20Business/SCHOOL/JP/EZGit/EZGit/MicrosoftWordAddIn/bin/Debug/MicrosoftWordAddIn.dll.manifest: the manifest may not be valid or the file could not be opened. ---> System.Deployment.Application.InvalidDeploymentException: Application manifest is not semantically valid. ---> System.Deployment.Application.InvalidDeploymentException: File element lib\fedora-x64\native\..\libgit2-106a5f2.so must have a relative path.
   at System.Deployment.Application.Manifest.AssemblyManifest.ValidateFile(File f)
   at System.Deployment.Application.Manifest.AssemblyManifest.ValidateSemanticsForApplicationRole()
   --- End of inner exception stack trace ---
   at System.Deployment.Application.Manifest.AssemblyManifest.ValidateSemanticsForApplicationRole()
   at System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)
   --- End of inner exception stack trace ---
   at Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.GetManifests(TimeSpan timeout)
   at Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.InstallAddIn() 

Я думаю, что опубликованному решению нужны пакеты, но они работают в Visual Studio без них. Я установил их, чтобы увидеть, а затем запуск из Visual Studio вызывает ошибку.

Я попытался изменить файл .csproj, добавив следующее

<Target Name="EnsureNetstandardFilesAreIncludedInClickOnce" BeforeTargets="_DeploymentComputeClickOnceManifestInfo">
    <Message Text="Adding netstandard files to ClickOnce" />
    <ItemGroup>
      <PublishFile Include="@(_NETStandardLibraryNETFrameworkLib->'%(FileName)')" KeepMetadata="None">
        <PublishState>Include</PublishState>
        <FileType>Assembly</FileType>
      </PublishFile>
    </ItemGroup>
    <!-- Consider using ReferenceCopyLocalPaths instead, if we are missing files -->
    <Message Text="Adding nuget files to ClickOnce" />
    <ItemGroup>
      <PublishFile Include="@(ReferencePath->'%(FileName)')" Condition=" '%(ReferencePath.NuGetSourceType)' == 'Package' and '%(ReferencePath.NuGetIsFrameworkReference)' != 'true'" KeepMetadata="None">
        <PublishState>Include</PublishState>
        <FileType>Assembly</FileType>
      </PublishFile>
    </ItemGroup>
    <Message Text="Adding Private True references to ClickOnce" />
    <ItemGroup>
      <PublishFile Include="@(ReferencePath->'%(FileName)')" Condition="'%(ReferencePath.Private)' == 'True'" KeepMetadata="None">
        <PublishState>Include</PublishState>
        <FileType>Assembly</FileType>
      </PublishFile>
    </ItemGroup>
  </Target>
...