본문 바로가기

프로그래밍 언어/C#10

728x90
반응형
[.NET] "hostfxr.dll could not be found" 오류 해결법 .NET으로 만든 프로그램을 배포하다보면 "hostfxr.dll could not be found"라는 오류 메세지가 아래의 사진처럼 나타날 때가 있다. 내용을 살펴보면 .NET 실행환경이 구축되어 있지 않아서 발생하는 문제이며 .NET Runtime을 설치하면 해결된다. 내용 중에 다운로드 링크가 있는데 저 링크를 통해서 다운받으러 가도 되고 아니면 필자가 아래에 입력한 링크로 가서 받아도 된다. .NET 다운로드 주소 : dotnet.microsoft.com/download 사용하고자 하는 버전의 .NET을 적절히 다운 받아서 설치하면 된다. 실행만 한다면 Runtime만 설치해도 된다. 2021. 4. 6.
[C#] 프로젝트 프레임워크를 .NET 5.0으로 변경하기 여러가지 이유로 .NET 5.0으로 C# 프로그램을 개발해야할 때가 있다. 나는 C# 프로그램을 개발할 때 Visual Studio 2019를 사용하고 있는데 예전에 설치한 버전이라서 5.0 런타임을 설치하고 다른 종속성 패키지들도 업데이트할 필요가 있었다. 하지만 설치 및 업데이트 후에도 '프로젝트 속성'-'애플리케이션'-'대상 프레임워크'에서 .NET 5.0이 아래처럼 설정 목록에 없었다. 이 경우는 텍스트 에디터로 프로젝트 설정을 바꿔주면 된다고 MSDN(Microsoft Developer Network) 문서에 있었기에 아래처럼 내용을 확인하고 바꾸니 .NET 5.0으로 잘 설정되었다. 프로젝트 설정 파일은 프로젝트 폴더로 가서 '프로젝트명.csproj'으로된 파일이다. 이 파일을 메모장이나 자신.. 2021. 4. 3.
구글 블로거 API의 글 등록은 사용량에 제한이 있다. 이전에 구글 블로거 API를 사용하는 방법을 소개하는 글을 썼었다. 그 중에 구글 클라우드 플랫폼 내의 API 사용량 자체는 제한이 없는데 구글 블로거 서비스에서 제한을 두고 있는 것을 찾았기에 기록하려고 글을 쓴다. 구글 블로거 API로 글을 등록하는 경우 하루에 글 등록이 최대 100개로 제한이 된다. 100개를 초과해서 글을 등록하려고 하면 다음과 같은 오류 메시지가 나타난다. "We're sorry, but one or more limits for the requested action have been exceeded. [403]" 403이라는 숫자는 HTTP에서 일반적으로 권한이 없음을 나타내는데 메시지 내용을 보아하니 요청한 액션을 수행할 수 있는 횟수를 초과한 것으로 나온다. 혹시나 싶어서 .. 2021. 1. 14.
[C#] HttpClient로 이미지를 받아서 저장하기 HttpClient로 이미지를 받아서 저장하는 코드를 기록용으로 남겨둔다. 예제의 소스는 이해를 돕기 위해 주제와 관련된 기능 외에는 사용하지 않았다. using System.Net.Http; namespace Program { class Program { static async System.Threading.Tasks.Task Main(string[] args) { HttpClient client = new HttpClient(); HttpResponseMessage response = await client.GetAsync("https://www.google.com/logos/doodles/2021/new-years-day-2021-6753651837108820-law.gif"); byte[] res.. 2021. 1. 1.
[C#] 셀레니움에서 Timeout 또는 OutOfMemory가 발생하는 문제 C#에서 셀레니움을 활용하여 크롬 웹브라우저를 제어하고 있으면 몇시간 후에 크롬 웹브라우저로부터 응답이 없다고 Timeout 오류가 발생하거나 OutOfMemory에러가 발생하여 제어불능에 빠지는 상황이 발생한다. OpenQA.Selenium.WebDriverException: The HTTP request to the remote WebDriver server for URL http://localhost:65320/session/2c1547c846178882ccf6af559244ec4e/url timed out after 60 seconds. ---> System.Net.WebException: The operation has timed out. at System.Net.HttpWebRequest.Ge.. 2020. 12. 28.
[C#] 셀레니움(Selenium)으로 크롬(Chrome)을 제어하자 #에서 브라우저를 제어하여 특정 정보를 읽어와야하는 경우가 있다 이 경우 셀레니움(Selenium)을 통해 브라우저를 제어할 수 있는 방법이 있다. 이번 포스트에서는 셀레니움으로 크롬(Chrome) 브라우저를 제어하는 예제를 소개하려고 한다. 매번 C# 관련 포스트에서 그러하듯이 우리의 친구 NuGet 패키지 관리자를 실행하여 셀레니움 관련 라이브러리를 설치하도록 하겠다. Visual Studio 2019 상단의 '도구'-'NuGet 패키지 관리자'-'솔루션용 NuGet 패키지 관리...'를 클릭하여 NuGet 패키지 관리자를 실행한다. Selenium을 입력하여 Selenium.WebDriver를 선택한 후 설치한다. 설치를 진행하기 위하여 변경될 내용을 미리 보여주는데 확인하고 '확인'을 누른다. 셀.. 2020. 12. 25.
[C#] 구글 블로거 API로 글 등록하는 법 한국을 소개하는 영어 블로그를 운영하려고 하는데 글을 편하게 쓰기 위하여 구글 블로거 API로 글을 등록하는 예제 프로그램을 작성해보았다. 글 등록 예제 소스코드 using System; using System.IO; using Google.Apis.Blogger.v3.Data; using Google.Apis.Blogger.v3; using Google.Apis.Auth.OAuth2; using Google.Apis.Util.Store; using Google.Apis.Services; using System.Threading; using System.Threading.Tasks; namespace InsertPost { class InsertPost { static void Main(string[] .. 2020. 12. 23.
[C#] 구글 블로거 API 라이브러리를 설치하는 법 구글 블로거 API 기능을 C#에서 활용하여 개발하기 위해서는 구글 블로거 API 라이브러리를 설치하는 것이 편리하다. 구글 블로거 API 라이브러리는 Visual Studio 2019에서 NuGet 패키지 관리잘로 쉽게 설치가 가능하다. NuGet 홈페이지로 가면 현재(2020-12-23) 기준으로 1.49.0.2172가 안정적인 버전으로 출시되어 있는 것을 확인할 수 있었다. NuGet 패키지 관리자는 '도구'-'NuGet 패키지 관리자'-'솔루션용 NuGet 패키지 관리...'을 눌러서 실행할 수 있다. '찾아보기'에서 google.apis.blogger.v3를 입력하여 검색하고 클릭하면 우측에 설치 버튼이 나타난다. 설치를 원하는 프로젝트를 클릭하여 설치 버튼을 누른다. 설치를 누르면 위와 같이 .. 2020. 12. 23.
[C#] 구글 API 인증 라이브러리를 설치하는 법 구글 OAuth 2.0 인증을 활용하여 구글 서비스를 이용한 프로그램을 개발하기 위해서는 구글 API 인증 라이브러리를 설치하는 것이 수월하다. 구글 API 인증 라이브러리는 Visual Studio 2019에서 NuGet 패키지 관리자로 쉽게 설치가 가능하다. NuGet 홈페이지로 가면 현재(2020-12-12) 기준으로 1.49.0이 안정적인 버전으로 출시되어 있는 것을 확인할 수 있었다. NuGet 패키지 관리자는 '도구' - 'NuGet 패키지 관리자' - '솔루션용 NuGet 패키지 관리...' 를 눌러서 실행할 수 있다. '찾아보기'에서 google.apis.auth를 입력하여 클릭하면 우측에 설치 버튼이 활성화 된다. 설치를 원하는 프로젝트를 클릭하여 설치 버튼을 누른다. 설치를 누르면 변경.. 2020. 12. 12.
[C#] 구글 블로거 API - 블로그 정보를 읽어오자 한국을 소개하는 영어 블로그를 운영해보려고 하는데 몇 가지 프로그램을 개발하는 것이 편해보여서 구글(Google) 블로거(Blogger) API(Application Programming Interface)를 사용하는 방법을 소개하고자 한다. 사용하는 기능 유형별 예제를 본 블로그에서 정리할 예정이고 소스코드가 어느 정도 모이면 Github에 공개할 예정이다. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; namespace BlogInformation { class BlogInformation { static void Main(strin.. 2020. 12. 9.