Portanto, sei que esta é uma pergunta muito básica, mas gostaria de perguntar aos especialistas apenas para ter certeza.
Temos um aplicativo .NET em execução em um servidor de aplicativos e nossos usuários o iniciam usando um atalho em suas estações de trabalho que aponta para o executável principal por meio de um caminho UNC (\AppServer01\Software\MainApp.exe). O problema é que esse aplicativo trava de vez em quando, e posso ver no log de eventos dos clientes que há appcrashes e o módulo com falha é uma dll em .NET.
Minha pergunta é: quando você inicia um aplicativo .NET a partir de um caminho UNC, ele utilizaria o .NET local (o .NET no cliente) ou a instância remota do .NET (o .NET no AppServer01)?
Ele utilizaria a instalação local do .NET se você não fizer nada sofisticado e for um aplicativo real. Se você incluir componentes da Web executados em um servidor (por exemplo, ASP.net usando IIS), o .NET no servidor será usado.
Além disso, esteja ciente de que você pode fazer referência a assemblies hospedados no caminho UNC. Portanto, realmente depende de como esse aplicativo foi realmente programado.
Não tenho certeza se haveria outras maneiras de convencer o .NET a usar assemblies remotos. Parece que este post Carregar assembly do local da rede pode ter mais informações sobre como descobrir se o assembly remoto seria carregado.
Mesmo assim, o processamento real seria feito no computador local usando a instalação local.