2016-09-06 2 views
0

리소스 파일 (.resx)을 생성하는 도구가 있습니다. C# -Design 파일을 업데이트하려면 .resx-Files에 대해 "사용자 지정 명령 실행"을 실행해야합니다.GenerateResource Task가 잘못된 C# 버전의 코드를 생성합니다.

이 작업을 자동화하기 위해 GenerateResource 작업을 빌드 파일에 추가했습니다. 이렇게하면 컴파일 할 때마다 C# 파일이 생성됩니다.

GenerateResource로 생성 된 코드는 다음을 포함합니다. typeof(Default).Assembly. 사용자 정의 도구 명령을 실행할 때이 부분은 typeof(Default).GetTypeInfo().Assembly입니다.

리소스 파일은 형식 Type에 속성 Assembly가 포함되지 않은 PCL 프로젝트의 일부입니다.

이 코드는 "System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0"으로 생성되었지만 대신 "System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"으로 생성되어야한다고합니다.

작업에서 사용해야하는 버전을 지정하는 방법이 있습니까? 또는 플러그인을 사용하지 않고 이러한 소스 파일을 자동으로 생성하는 또 다른 방법은 무엇입니까?

+0

모두 동일한 문제가 있습니다. 현재 해결 방법은 [this] (http://stackoverflow.com/questions/7837644/how-to-replace-string-in-file-using-msbuild) 질문을 기반으로합니다. 코드가 생성 된 후 작동하지 않는 호출을 작동중인 호출로 바꿉니다. 추한. – lokimidgard

답변

0

동일한 상황이 발생하면 원하는 버전의 SDK 도구 resgen.exe를 사용하도록 GenerateResource를 조정해야합니다. GenerateResource 태스크는 예를 들어,로 설정함으로써 속성 SdkToolsPath을 갖는다. $ (TargetFrameworkSDKToolsDirectory)가 도움이 될 수 있습니다.