코딩을 하다보면 dll 들이 엄청 늘어 날때가 있다.

폴더가 지저분해진다.

보기 않좋다.

 

그래서 모든 dll 을 Embed 시키는 방법을 알아 본다.

기존의 ilmerge 라는 툴이 있지만 WPF 등과 같은 프레임웤에 사용하려면 관련된 dll 을 다 열거 하라고 하고 사용법 또한 그리 스마트 하지 않다.

AppDomain.CurrentDomain.AssemblyResolve 를 이용하여 하나로 합칠수가 있다.

우선 사용될 모든 dll 을 비주얼 스튜디오 안으로 끌어 온다

 

.

 

그다음 이 모든 dll 들을 포함 리소스로 만들어 준다.

 

그리고 App 클래스로 이동하여 아래와 같이 코딩 한다.

 

 

using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.IO; using System.Linq; using System.Reflection; using System.Threading.Tasks; using System.Windows; namespace Test_Marge { public partial class App : Application { public App() { AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(ResolveAssembly); }

static Assembly ResolveAssembly(object sender, ResolveEventArgs args) {
//We dont' care about System Assembies and so on...
//if (!args.Name.ToLower().StartsWith("Test")) return null;
Assembly thisAssembly = Assembly.GetExecutingAssembly();
//Get the Name of the AssemblyFile
var name = args.Name.Substring(0, args.Name.IndexOf(',')) + ".dll";
//Load form Embedded Resources - This Function is not called if the Assembly is in the Application Folder
var resources = thisAssembly.GetManifestResourceNames().Where(s => s.EndsWith(name));
if (resources.Count() > 0) {
var resourceName = resources.First();
using (Stream stream = thisAssembly.GetManifestResourceStream(resourceName)) {
if (stream == null) return null;
var block = new byte[stream.Length];
stream.Read(block, 0, block.Length);
return Assembly.Load(block);
}
}
return null;
}
}
}

 

 

그리고 난 다음 빌드된 폴더의 exe 만 따로 꺼내어 테스트 해본다.

 

 

출처 : http://blog.mahop.net/post/Merge-WPF-Assemblies.aspx

 

 

참고 : Winform 에서는 Program.cs 의 Application.Run(new Form1()); 위에 작성한다.
Posted by cyj4369
,

You could open the SNL file in any text editor (Notepad, etc.) and simpley change the project path there.

'Development > visual studio' 카테고리의 다른 글

[LINK에러시 가능한 해결법 한 가지]  (0) 2012.08.20
[MFC 트레이아이콘으로 만들기]  (0) 2012.08.19
[error C2146: 구문 오류]  (0) 2012.08.19
[MFC 트레이아이콘으로 만들기]  (0) 2012.08.18
[error LNK2005]  (1) 2012.08.18
Posted by cyj4369
,

자바스크립트코드를 이용한 우클릭방지 & 드래그방지 해제


확장기능이 아니라 자바스크립트코드를 이용한 방법이다.


먼저 크롬에서 아무 사이트나 북마크를 추가한다.


그 다음 그 북마크를 수정하여 주소에 코드를 넣어주면 된다.


javascript: function naver(q){ void(z=q.body.appendChild(q.createElement('script'))); void(z.language='javascript'); void(z.type='text/javascript'); void(z.src='http://userscripts.org/scripts/source/61326.user.js');} function selfw(w) { try{naver(w.document);} catch(e){} for (var i =0; i <w.frames.length; i++) { try{ selfw(w.frames[i]); } catch(e){} } } selfw(self);(function() { var e, i, all; document.onselectstart = null; document.oncontextmenu = null; all = document.getElementsByTagName("*"); for (i = 0; i < all.length; i += 1) { e = all[i]; e.onselectstart = null; e.oncontextmenu = null; } })();


이 코드를 넣어주면 된다.

 

 

 

이런 식으로 넣어주면 된다.

 

그 후에 드래그방지&우클릭방지 해제를 하고싶은 사이트에서 그 북마크를 한번 실행해주면 된다.

 

실행해도 아무런 변화를 느끼지 못해서 어리둥절할 수도 있지만 그 상태에서 드래그나 우클릭을 해보면 방지가 풀린것을 알 수 있다.

 

그런데 이유는 모르겠지만 몇몇 안되는 사이트들이 있다. 나는 1번의 확장기능도 이용하고있기 때문에 이런 경우에는 그냥 우클릭해서 프레임소스보기를 해서 자료를 얻는다.



출처 : http://pws1113.tistory.com/82

Posted by cyj4369
,

업데이트를 하거나 쓰지 않는게 답인 듯 하다.


Ubuntu 10.10 (Maverick Meerkat) end-of-life reached on April 10, 2012

This note is just to confirm that the support period for Ubuntu 10.10 (Maverick Meerkat) formally ends on April 10, 2012 and Ubuntu Security Notices no longer includes information or updated packages for Ubuntu 10.10.

The supported upgrade path from Ubuntu 10.10 is via Ubuntu 11.04 (Natty Narwhal). Instructions and caveats for the upgrade may be found at https://help.ubuntu.com/community/NattyUpgrades. Note that upgrades to version 11.04 and beyond are only supported in multiple steps, via an upgrade first to 11.04, then to 11.10. Both Ubuntu 11.04 and Ubuntu 11.10 continue to be actively supported with security updates and select high-impact bug fixes. All announcements of official security updates for Ubuntu releases are sent to the ubuntu-security-announce mailing list, information about which may be found athttps://lists.ubuntu.com/mailman/listinfo/ubuntu-security-announce.

Since its launch in October 2004 Ubuntu has become one of the most highly regarded Linux distributions with millions of users in homes, schools, businesses and governments around the world. Ubuntu is Open Source software, costs nothing to download, and users are free to customize or alter their software in order to meet their needs.

Originally posted to the ubuntu-announce mailing list by Kate Stewart on Tue Apr 10 15:39:12 UTC 2012




출처 : http://fridge.ubuntu.com/2012/04/10/ubuntu-10-10-maverick-meerkat-end-of-life-reached-on-april-10-2012/

'Embedded Lab > linux, x86' 카테고리의 다른 글

[우분투에서 monaco 폰트 설정]  (0) 2014.04.27
[ln 명령어]  (0) 2014.02.06
[특수문자표]  (0) 2013.11.04
[GFS(Google File System)]  (0) 2013.10.28
[top 명령어]  (0) 2013.10.23
Posted by cyj4369
,

Ubuntu 에서 추가 글꼴 설정하기.

[#1] 폰트 다운로드


[#2] Font 설정

sudo mkdir /usr/share/fonts/truetype/custom/
sudo cp *.ttf /usr/share/fonts/truetype/custom/
sudo fc-cache -f -v

Ubuntu 11.04 에서는 antialias true 로 enable 되어 있어서 추가로 설정하지 않아도 되는듯…

[#3] 적용





[#4] Emacs 에서 monaco font 설정

다른 글을 보니깐 아래와 같이 하면 된다고 하던데…

echo “Emacs.font: Monaco-10″ > ~/.Xresources
xrdb -merge ~/.Xresources

잘 안 되는 듯 하여, emacs configuration file 에 font 설정하도록 추가.
덕분에 gitHub 사용법 좀더 찾아보고 https://github.com/tkhwang/tkhwang-dotemacs 에도 update 완료. :)

(if (eq system-type 'gnu/linux)
    (progn
      (setq initial-frame-alist '((top . 10) (left . 100)))
      (setq default-frame-alist
        (append
         '(
           (font . "-*-Monaco-normal-normal-normal-*-13-*-*-*-m-0-iso10646-1")
           (width . 140)
           (height . 80)
           )
         default-frame-alist))))



출처 : http://tkhwang.pe.kr/humblecoding/archives/680

'Embedded Lab > linux, x86' 카테고리의 다른 글

[우분투 10.10 maveric apt-get update 에러]  (0) 2014.05.04
[ln 명령어]  (0) 2014.02.06
[특수문자표]  (0) 2013.11.04
[GFS(Google File System)]  (0) 2013.10.28
[top 명령어]  (0) 2013.10.23
Posted by cyj4369
,