lijunle / Vsxmd

VS XML documentation -> Markdown syntax.
MIT License
215 stars 51 forks source link

Working fine for a project in one machine, but not in other machine #105

Open EuroEager2008 opened 11 months ago

EuroEager2008 commented 11 months ago

Nuget added to a project, compiles and generates .md file just fine on my office machine. Cloned the repo to my home machine which reports an error while build. Error message (replaced some private info into <> brackets): Error MSB3073 The command ""C:\Users\.nuget\packages\vsxmd\1.4.5\build\/../tools/win-x64/Vsxmd.exe" "bin\Debug\net6.0\.xml" "\README.md" """ exited with code -2147450726. (plus a line number in the Vsxmd.targets file stating )

Since this is machine specific it cannot be anything wrong with the solution files, but something missing on my homemachine?

ebiton-eig commented 11 months ago

Same problem for me. It worked, then suddenly all my projects containing Vsxmd started to get this error.

I use the latest version of VS2022 Community and my projects are in .NET 7.0 (last update).

fr4gles commented 8 months ago

Possibly a problem with temporary directory where Vsxmd stores data, but it does not clear it correctly on rare occasions - probably a bug.

We solved similar problem with extending end-project csproj with:

    <!--
      FIXES:
      An assembly specified in the application dependencies manifest (Vsxmd.deps.json) was not found:
      package: 'runtimepack.Microsoft.NETCore.App.Runtime.win-x64', version: '3.1.1'
      path: 'Microsoft.Win32.Primitives.dll'
    -->
    <PropertyGroup>
      <UserTempFolder>$([System.IO.Path]::GetTempPath())</UserTempFolder>
    </PropertyGroup>
    <ItemGroup>
      <FilesToDelete Include="$(UserTempFolder).net\Vsxmd\**\*"/>
    </ItemGroup>
    <Target Name="CustomCleanVsxmd" AfterTargets="Clean" Condition="$([MSBuild]::IsOsPlatform('Windows'))" >
      <Message Importance="high" Text="Cleaning up Vsxmd temporary files in $(UserTempFolder).net\Vsxmd" />
      <Delete Files="@(FilesToDelete)" ContinueOnError="true" />
      <RemoveDir Directories="$(UserTempFolder).net\Vsxmd\" ContinueOnError="true" />
    </Target>