2016-08-17 4 views
8

Windows Forms 응용 프로그램에 clickonce를 사용하고 있습니다. 일부 리소스 어셈블리를 배포해야합니다. 이 어셈블리는 내 프로젝트의 폴더에 있습니다 (참조가 아님). 그들은 BuildAction = content 및 CopyToOutputDir = Copy If New로 표시됩니다. 이 구성을 사용하면 경고가 표시됩니다. MSB3178: Assembly '' is incorrectly specified as a file.Visual Studio 빌드 제거/해제/해결 경고

BuildAction을 none으로 설정하면 경고가 사라지지만 배포해야하는 어셈블리는 ClickOnce 응용 프로그램 파일에 나타나지 않습니다.

나는이 경고없이 프로젝트에서 참조로 추가하지 않고 clickonce 게시에 이러한 어셈블리를 추가하고 싶습니다. 나는 많은 것을 연구했고 경고를 사용하지 못하게하는 해결책을 찾지 못했습니다.

편집 : 내가 설정 한 경우

경고 만 표시 "사용 ClickOnce를 보안 설정"

샘플 프로젝트 "프로젝트/속성/보안 탭"에 = "진정한"

Click to download the sample project

경고를 작성하고 확인하십시오.

+0

'BuildAction'을'content'로 설정하는 대신'none'에두고'CopyToOutputDir'을'CopyAlways'로 변경하십시오. –

+0

안녕하세요 @ThorstenDittmar! 그랬지 만 어셈블리는 한 번의 클릭으로 응용 프로그램 파일 (프로젝트/속성/게시 탭)에 나타나지 않습니다./ –

+0

내 질문을 편집했습니다. 확인하십시오. –

답변

6

MSBuild 경고를 표시하지 않으려면 은 여전히 ​​이 아닙니다.

MSB 접두사가있는 경고는 MSBuild에서 throw됩니다. 현재 우리는 MSBuild 경고를 억제 할 수 없습니다.

참조 : https://social.msdn.microsoft.com/Forums/vstudio/en-US/96b3ea2e-92ed-4483-bbfe-a4dda3231eb9/suppress-msb4126?forum=tfsbuild 당신은 예를 들어, .csproj 파일의 PropertyGroup에 억제 할 수있는 몇 가지가 있습니다

:

< ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch> 없음 </ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>

그러나 없음 파일 이름이 이고 파일 이름이 인 것으로 잘못 지정되었습니다. 당신으로 인해 제 3 자 DLL의 파일 확장자에 MSB3178의 근본 원인을 해결하지 못할 때문에


, 당신은 특정 경고를 무시하는 명분이있다.

관련 SO 스레드 herehereMSDN. MSDN과 정확히 같은 질문입니다.

+0

안녕하세요 제레미 톰슨, ​​답변 해 주셔서 감사합니다. 여기에 문제를 게시하기 전에 게시 한 링크를 조사했습니다. 나는 정말로 어떻게 든이 경고를 억제하는 것이 가능할 것이라고 생각했다. 진짜 문제는 동일한 문제에 대해 140 가지 경고가 있다는 것입니다. 중요한 경고가 나타나면 그는 수백 명의 다른 사람들과 함께합니다. 이 경고를 억제 할 수 없다는 것은 너무 불편합니다. –

+0

사실 저는 정말 불행합니다. 연구 결과가 나왔으면 좋겠다.하지만 나는 똑같은 이해를하게되었다. 내성적으로 이것을 할 수도 없습니다! 그것에 대한 또 하나의 생각은 제 2 번째 "바운티 응답"에 따라 VS AddIn입니다. 그럼에도 불구 하고이 요청은 흑 마법 답변이 필요합니다 ... 여기에 자신의 연구를 반복해서 죄송합니다 –

+0

@ Jeremy Thompson에게 관심을 가져 주셔서 대단히 감사합니다. 예기치 않은 불가능한 매우 일반적인 시나리오가 있습니다. 내 코드 (dllimport)에서 관리되지 않는 어셈블리를 사용하고 게시해야한다고 가정 해보십시오. 이 경고없이 어떻게합니까? 이상한... –