본문 바로가기

Study/C#32

<SQLite.Interop.dll'을(를) 로드할 수 없는경우>를 해결하며 알아보는 .NET과 네이티브 코드(dll)의 통신 절차 C#에서 SQLite를 쓰다보면, 항상 동일하게 써도 해당 오류가 발생 될 때가 있는데, 그럴때마다 아주, 아주 화가난다.. SQLite.Interop.dll'을(를) 로드할 수 없습니다. 지정된 모듈을 찾을 수 없습니다. (예외가 발생한 HRESULT: 0x8007007E) 이 에러는 왜 뜨는것이고, 어떻게 해결해야 하는지에 대해서 포스팅 해본다.물론 급한사람들을 위해 가장 먼저 해결방법을 쓴다.. 목차SQLite.Interop.dll 오류 해결방법0. 혹시모르니 Clean과 Rebuild부터 해보자.1. 솔루션내의 dll 확인. 가장 기본적인 절차는 솔루션 내에 불필요하게 임의로 추가한 Interop를 확인하는것이다. (임의로 추가했다면 삭제해주자)기본적으로 Sqlite를 Nuget에서 설치 후 컴파.. Study/C# 2024. 10. 10.
[C#] VisualStudio 2022 ClickOnce를 사용한 소프트웨어 배포방법 MS에서 쓰라고 밀어주는데, 요즘 이거로 많이들 배포하는것 같다. 제일 좋은 강점은 특정 서버에 자동으로 업로드시킨 후 사용자가 소프트웨어를 실행할 때 버전컨트롤을 해준다는 부분이라, 이런 부분에서 강점이 있다.물론 나의 경우, 외부에 위치한 서버를 사용할 수 없는 상황이라 그냥 내부서버에서 배포용으로 만들었다. 프로젝트를 마우스 우클릭하여 게시 버튼을 클릭한다.  배포 옵션3가지의 옵션이 있는데 ,짤막하게 설명하자면1. 웹사이트웹서버를 통해 배포 웹 브라우저를 통해 애플리케이션을 다운로드. 일반적으로 인터넷배포를 사용할때 사용2. UNC경로네트워크 경로를 통해 배포 일반적으로 로컬네트워크 내에서 애플리케이션 배포할때 사용3. CD-ROM 이동식 미디어를 통해 배포. 인터넷등의 환경이 없을때 사용온라인,.. Study/C# 2024. 7. 29.
[C#] C#으로 하는 데이터 크롤링 이전 테스트용 프로그램을 개발할때,  뉴스 사이트에서 특정 파라미터로 뉴스기사를 검색하여 검색된 결과를 표출하는 기능을 구현하려고 했다. 물론 이때는 테스트용이었으므로 자연어처리등의 로직은 필요하지도 않았고, 서버사이드에서 작업할 필요는 없었기에 그냥 C#에서 바로 짜서 사용했다. 물론 MVVM 패턴을 적극적으로 사용한 예제가 될 것이다. 간략하게 요약하면News 데이터를 담을 NewsContents 클래스NewsContents를 가지고 ViewModel을 만들기 위한 NewsContentsViewModel이 ViewModel과 연결된 NewsPopup, NewsContentSelector , 3개의 코드를 작성할 예정이다. 먼저 뉴스정보를 담을 클래스가 필요한데, 나같은 경우 날짜, 제목, previe.. Study/C# 2024. 7. 22.
[C#] 하나의 Window에서 두개의 클래스를 Binding하고 싶을때 가끔씩 하나의 Window에 두개의 Class를 Binding하는게 더 좋을때가 있다. 예를들어 한 창에 물품과 쿠폰을 같이 보여지게하고 그 값이 들어왔을때 가격을 보여주고 싶다고 할때와 같이 말이다.. (물론 이런 경우도 굳이굳이 이렇게 짤필요는없다... 본인은 업무상 해야하는일이 있어서 이렇게 했다..) 아무튼 그런경우 간단한 방법을 사용하면 된다. 새로이 클래스를 하나 만들고. 그 안에 두개의 클래스를 다 담은 후 xaml에서 datacontext로 선언해주면 된다! public class firstClass{ decimal price;}public class secondClass{ decimal discont;}public class doubleBindingClass{ firstClass fc =.. Study/C# 2024. 5. 22.
[C#] ScrollViewer 안에 StackPanel을 사용해서 스크롤되는 가변 UI리스트 만들기. 이번에는 가변 UI를 만들어보자. 지난번 캘린더를 만들때는 Grid를 사용했는데, 이번에는 DevExpress의 LayoutControl을 사용해서 만들어보려고 한다.  물론 Grid를 이용하는경우 Grid.ColSpan등을 이용해 높이, 너비를 조절한후 사용하면 동일한 결과를 얻을 수 있다. 먼저 가변적으로 추가할 컨텐츠를 만든다.   public event EventHandler RemoveRequested; private void RemoveButton_Click(object sender, RoutedEventArgs e) { // RemoveRequested 이벤트를 발생시키며, 이 UserControl을 제거하도록 요청 RemoveRequested?.Invo.. Study/C# 2024. 5. 3.
반응형