2016-06-09 1 views
1

우리는 임베디드 리눅스에서 C 라이브러리 용 C# 래퍼를 빌드하고이를 대상 시스템의 GAC에 설치하려고합니다.강력한 명명 된 어셈블리를 만들 때 버전 0.0.0.0

이를 위해, 나는 키 쌍을 생성 sn를 사용했습니다 및 mcs 코드 컴파일 : 그가 구축 된 후에는, 내가 가진 GAC에 주입하는 gacutil을 사용하여 지금

sn -k keypair.snk 
mcs /target:library -keyfile:keypair.snk -out:MyLib.dll src/*.cs 

을 :

내가 끝낼 무엇
gacutil /i -gacdir /path/to/gac MyLib.dll 

올바른 파일 구조이지만 버전 번호가 0.0.0.0로 설정됩니다

.../usr/lib/mono/gac/MyLib 
.../usr/lib/mono/gac/MyLib/0.0.0.0__3141592653589fff 
.../usr/lib/mono/gac/MyLib/0.0.0.0__3141592653589fff/MyLib.dll 

래퍼의 버전이 사용되는 기본 C 코드의 버전과 일치하도록하여 제 질문이 단순한 것입니다. 현재 버전의 출처는 무엇이며 어떻게하면 3.14.15.9 (예 :)이 될까요?

답변

3

C# 소스에 AssemblyVersion이라는 어셈블리 수준 특성을 추가합니다. 이 은 일반적으로AssemblyInfo.cs라는 이름의 파일에 추가됩니다

참고 :이 자동 생성 된 프로젝트 파일의 잘라 내기/붙여 넣기입니다, 나는 AssemblyVersion 속성을 업데이트하고 당신은 단지 당신이 CIL 원하는 속성을 포함해야 조립

using System.Reflection; 
//using System.Runtime.CompilerServices; 

// Information about this assembly is defined by the following attributes. 
// Change them to the values specific to your project. 

[assembly: AssemblyTitle("Sushi.Task.Lib")] 
[assembly: AssemblyDescription("")] 
[assembly: AssemblyConfiguration("")] 
[assembly: AssemblyCompany("SushiHangover")] 
[assembly: AssemblyProduct("")] 
[assembly: AssemblyCopyright("SushiHangover - 2016")] 
[assembly: AssemblyTrademark("SushiHangover")] 
[assembly: AssemblyCulture("")] 

// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". 
// The form "{Major}.{Minor}.*" will automatically update the build and revision, 
// and "{Major}.{Minor}.{Build}.*" will update just the revision. 

[assembly: AssemblyVersion("3.14.15.9")] 

// The following attributes are used to specify the signing key for the assembly, 
// if desired. See the Mono documentation for more information about signing. 

//[assembly: AssemblyDelaySign(false)] 
//[assembly: AssemblyKeyFile("")] 

당신이 컴파일하는 다른 사람에게 그 소스 파일을 추가 포함한다.

>gacutil /i Sushi.Task.Lib.dll 

을 그리고 세부 정보를 검색 :

를 설치

>gacutil /l |grep -i sushi 

Sushi.Task.Lib, Version=3.14.15.9, Culture=neutral,.... 

파일 시스템 : 속임수를 썼는지

ls -Rl /Frameworks/Mono.framework/gac | grep -i sushi 
drwxr-xr-x 3 root admin 102 Jun 8 20:25 Sushi.Task.Lib 
/Frameworks/Mono.framework/gac/Sushi.Task.Lib: 
/Frameworks/Mono.framework/gac/Sushi.Task.Lib/3.14.15.9__629e3fd32ae394a7:..... 
+0

합니다. 감사. – paxdiablo