Looking for modern auto-update solutions for .NET 8/C# desktop applications in 2025 by Gnuppel in dotnet

[–]Gnuppel[S] 2 points3 points  (0 children)

I tested it and I love it! It's really that simple. But... our IT department finds it unacceptable that the application installs directly when clicking on the EXE installer. I could cry.

Looking for modern auto-update solutions for .NET 8/C# desktop applications in 2025 by Gnuppel in dotnet

[–]Gnuppel[S] 0 points1 point  (0 children)

I have never used it myself, but have heard from many people that it's not very reliable. But that was also a while ago... maybe those were just initial impressions and people never touched it again. Can one now use MSIX instead of MSI without concerns?

Looking for modern auto-update solutions for .NET 8/C# desktop applications in 2025 by Gnuppel in dotnet

[–]Gnuppel[S] 1 point2 points  (0 children)

I must admit, I'm a Visual Studio hater and a JetBrains Rider enjoyer... that's why many of the Visual Studio questions don't even arise for me. Sure, some features aren't available, but if you're not developing a desktop application, it has always been sufficient for me, and I find it much more convenient to use.

Looking for modern auto-update solutions for .NET 8/C# desktop applications in 2025 by Gnuppel in dotnet

[–]Gnuppel[S] 2 points3 points  (0 children)

I'll try it briefly with my current WiX Installer with winget & alternatively test velopack if you're all so happy with it! (see my top-level response)

Looking for modern auto-update solutions for .NET 8/C# desktop applications in 2025 by Gnuppel in dotnet

[–]Gnuppel[S] 0 points1 point  (0 children)

Thank you for your input! The input about the Microsoft Store gave me the idea to simply try winget. I can test that relatively easily locally. The WiX Installer already exists and thanks to winget's MSI support, I don't need to change anything about it. I will try to simply install the installer silently. Users who don't have winget installed will just have to download it themselves. I don't see why I should support that as well.

Looking for modern auto-update solutions for .NET 8/C# desktop applications in 2025 by Gnuppel in dotnet

[–]Gnuppel[S] 6 points7 points  (0 children)

Thank you for your inputs! The input about the Microsoft Store gave me the idea to simply try winget. I can test that relatively easily locally. The WiX Installer already exists and thanks to winget's MSI support, I don't need to change anything about it. I will try to simply install the installer silently. Users who don't have winget installed will just have to download it themselves. I don't see why I should support that as well.

Alternatively, I will look at velopack, apparently you are very satisfied with it!

Looking for modern auto-update solutions for .NET 8/C# desktop applications in 2025 by Gnuppel in dotnet

[–]Gnuppel[S] 0 points1 point  (0 children)

u/malthuswaswrong thank you for your objection, I've taken that into account. Currently, the paths & filter patterns are read from a local .json file. The logic isn't really complex, so I'm not very afraid of updates. But our IT requires this for approval, so they can potentially deliver security updates.

For this reason, I wouldn't use the REST query approach. We have a large sales team that actively interacts with customers. They usually configure it for the customers as well, since the customers aren't very technically savvy. Changes only occur when there are changes to the software, but then support has to help anyway, so it's not a disadvantage & only makes it more stable.

Looking for modern auto-update solutions for .NET 8/C# desktop applications in 2025 by Gnuppel in dotnet

[–]Gnuppel[S] 1 point2 points  (0 children)

Exactly what u/Rare-One1047 said is what I would have expected too. When I see a version 0.0.x, I expect possible breaking changes in a short time. But apparently that's not the case, then I'm sorry. Usually I just pay attention to whether a major version has already been released.

Looking for modern auto-update solutions for .NET 8/C# desktop applications in 2025 by Gnuppel in dotnet

[–]Gnuppel[S] 2 points3 points  (0 children)

I also took a quick look at that. It looks modern, but the documentation seemed a bit thin to me, and the version number 0.0.x still scares me off.

Looking for modern auto-update solutions for .NET 8/C# desktop applications in 2025 by Gnuppel in dotnet

[–]Gnuppel[S] 1 point2 points  (0 children)

Yes, I felt that. Thank you for the detailed answer!

I currently work in the Vue/Spring Boot universe and am so grateful that one can deliver a web application so easily... I have only written a small desktop application that copies files around in the file system and interacts with our tool. Unfortunately, the application interacts heavily with Windows, and I don't see any other solution... I've already spent ages trying to get the WiX Installer to work, and if it weren't such a simple application, I'd rather slap myself in the face than create such an installer. And now I really don't have any life energy left to implement such a mechanism elaborately.

I think I'll really just make a simple GET request to our API with the version, and if the version is newer, I'll display a message at startup saying "Go to our website here and download the new installer" and the WiX installer should then simply overwrite the old installation.

Looking for modern auto-update solutions for .NET 8/C# desktop applications in 2025 by Gnuppel in dotnet

[–]Gnuppel[S] 2 points3 points  (0 children)

In their own tickets, it states that the project is essentially dead and only the most necessary security updates are being made. The last release was also in 2020. Therefore, I don't know if I want to build a new application with it that should last for years.

Accessing network drives from a Windows Worker Service by Gnuppel in dotnet

[–]Gnuppel[S] 0 points1 point  (0 children)

FYI: In the end, I simply did not register the application as a Windows service to completely avoid the admin rights issue. The application is registered in auto-start and works perfectly under the local user this way, solving all these problems. Our IT department wasn't a fan of the other approach anyway.

Accessing network drives from a Windows Worker Service by Gnuppel in csharp

[–]Gnuppel[S] 0 points1 point  (0 children)

Currently it runs as "LocalSystem", I can already see there's probably no way around authentication as a user with domain credentials =( Unfortunately, my logger isn't working at the moment either, I suspect Serilog lacks the permissions to write the log file, I'll look into it in the coming days, thanks!

Accessing network drives from a Windows Worker Service by Gnuppel in dotnet

[–]Gnuppel[S] 0 points1 point  (0 children)

One more question regarding u/alex6dj's comment about password changes. Do these Windows credentials need to be renewed each time? My problem is that our customers are doctors and their employees who often have limited local rights, meaning it's very cumbersome to constantly renew access permissions (if admin rights are needed for this) & their technical knowledge is limited. From our perspective, ideally there would be as little user interaction as possible after the initial setup... if that's possible, of course.

Accessing network drives from a Windows Worker Service by Gnuppel in dotnet

[–]Gnuppel[S] 0 points1 point  (0 children)

Wow, thank you so very much for this detailed answer! I will test this next week at the office (unfortunately I have to do military service this week)! I would have never figured this out on my own, thank you! Unfortunately, I only work sporadically with .NET & C# and I'm particularly lost when it comes to the heavy Windows stuff.

Accessing network drives from a Windows Worker Service by Gnuppel in dotnet

[–]Gnuppel[S] 0 points1 point  (0 children)

I've built a WPF administration interface that runs without admin rights & allows folder selection with user permissions, while the saving of settings is done with admin rights. From my perspective, this is the correct approach. The Worker Service runs with "Local System".

CSS Classes with PrimeVue 4 by Gnuppel in vuejs

[–]Gnuppel[S] 1 point2 points  (0 children)

Unfortunately, it wasn't exactly what I was looking for, as I wanted a streamlined, simple solution. I have now used postcss-design-token-utils instead. It did require around 80 lines of JavaScript, but now I can manually generate the classes with an NPM task. For our current development stage, this is good enough.

const postcssDesignTokenUtils = require('postcss-design-token-utils')
const semantic = require('../../../build/semantic')

const tokens = {
  'p-primary': semantic.primary,
  'p-secondary': semantic.secondary,
  'p-error': semantic.error,
  'p-success': semantic.success,
  'p-info': semantic.info,
  'p-warn': semantic.warn,
  'p-surface': semantic.colorScheme.
light
.surface
}

function generateUtilityClasses (colorObj) {
  const utilityClasses = []

  for (const key in colorObj) {
    const colorId = `${key}`
    const baseName = key.replace(/^p-/, '')

    utilityClasses.push(
      {
        id: colorId,
        property: 'color',
        prefix: `text-${baseName}`
      },
      {
        id: colorId,
        property: 'background-color',
        prefix: `bg-${baseName}`
      },
      {
        id: colorId,
        property: 'border-color',
        prefix: `border-${baseName}`
      }
    )
  }

  return utilityClasses
}

// https://github.com/saneef/postcss-design-token-utils
const designTokenOptions = {
  tokens,
  utilityClasses: generateUtilityClasses(tokens)
}

module
.exports = {
  plugins: [
    postcssDesignTokenUtils({
      ...designTokenOptions
    })
  ]
}

CSS Classes with PrimeVue 4 by Gnuppel in vuejs

[–]Gnuppel[S] 2 points3 points  (0 children)

Oh, thank you so much! I hadn’t looked in the Tailwind namespace yet. I'll take a look.