build 에러 및 linux, window 호환 앱 개발

현재 .NET core 7 개발 환경에서 window WPF 앱을 개발 하고 있습니다.
이후 command 라인에서 실행이 가능하고, Linux에서 사용이 가능하도록 변경이 필요해 dotnet build를 사용하려 docker에 설정을 완료 한 상태입니다.
신규 dotnet console 프로젝트를 생성하여 기존 project library를 참조로 받아 console용으로 프로그램을 만들려고 하는데 dotnet build command이후

/shared/workspace/project/프로젝트이름.csproj : error NU1301: Unable to load the service index for source https://api.nuget.org/v3/index.json. [/shared/workspace/project/프로젝트이름.csproj]

에러가 뜨는데 혹시 해결한 경험이 있거나 관련 내용 공유가 가능하신 분이 있을까요???
그리고, 윈도우 환경에서 기존 윈도우용 .net core7 프로젝트를 linux용으로 빌드가 불가능할까요???

1개의 좋아요

WPF는 Window Desktop 앱이여서 안됩니다.
Avalonia나 Uno 를 이용하셔야합니다.

5개의 좋아요
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<RuntimeIdentifier>linux-x64</RuntimeIdentifier>

image

library들이 .netstandard + .net5~8 로 만들어 진거면 window전용 함수를 쓴거아니면 linux에서도 빌드가 될거입니다

3개의 좋아요

console 이나 dll 은 타 OS에서 사용 가능 하지만 wpf나 winform은 windows 전용입니다.

5개의 좋아요

위에서 말씀들 해주신 것처럼 WPF는 윈도우를 제외한 환경에서 빌드가 불가능합니다.

<UseWPF>true</UseWPF>

WPF를 사용하기 위해서는 .NET Core임에도 불구하고 타겟 프레임워크에 -windows를 반드시 붙여야 동작을 하죠, Avalonia, Uno, MAUI 등의 크로스플랫폼에서는 -windows 없이도 사용할 수 있는 것을 보실 수 있습니다.

<TargetFramework>net7.0-windows</TargetFramework>

따라서 프로젝트 속성 파일에서 해당 프로젝트의 특성을 TargetFramework 항목을 통해 환경에 대한 정보를 빠르게 파악할 수 있습니다.

결과적으로 UseWPF를 제거하고, TargetFramework에서 -windows도 제거한다면 빌드가 되겠지만 WPF 관련 로직들을 모두 걷어내야 가능 하겠네요.

4개의 좋아요