2017-11-02 22 views
0

내가 (A NuGet 패키지) 내 일반적인 프로젝트 AsyncUsageAnalyzers를 설치, 나는 규칙을 따라 나의 패키지/모든 응용 프로그램에 시행 할 그 위에. 나는 UseConfigureAwait 규칙의 심각도를 변경하고, .ruleset가 작성되었습니다.없이 csproj NuGet 패키지에 폴더를 구축 할 파일을 추가하는 방법 .nuspec

는 나는 내가 주어진 구조의 NuGet 패키지가 필요 https://stackoverflow.com/a/20271758/2663813에 읽었습니다. 그 주장은 여기에서 확인 된 https://stackoverflow.com/a/46115423/2663813

내가 지금 무엇을 가지고 :

빌드/Common.ruleset

<?xml version="1.0" encoding="utf-8"?> 
<RuleSet Name="My common analyzer rules" Description="The rules that are enforced on all of my projects" ToolsVersion="10.0"> 
    <Rules AnalyzerId="AsyncUsageAnalyzers" RuleNamespace="AsyncUsageAnalyzers"> 
    <Rule Id="UseConfigureAwait" Action="Error" /> 
    </Rules> 
</RuleSet> 

빌드/My.Package.Id.targets

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
     <CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)Common.ruleset</CodeAnalysisRuleSet> 
    </PropertyGroup> 
</Project> 

에서 내 .csproj

<Import Project="build\My.Package.Id.targets" /> 
,

내 질문은 : 그 짓을했는지와 규칙이 올바르게 내 프로젝트에 적용되는지, 어떻게이 build/ 폴더 내부의 NuGet 패키지 내부에 build/에서 파일을 추가하려면 어떻게해야합니까 지금? 링크에 언급 된 .nuspec 파일을 사용하여이를 수행 할 수 있음을 알고 있지만 새로운 .csproj 구문을 사용하여이를 수행하고 싶습니다. 코멘트에, MarkPflug가 번역을 제공하고, 참조 용 https://docs.microsoft.com/en-us/nuget/schema/msbuild-targets#pack-scenarios을 인용, 페이지 https://docs.microsoft.com/en-us/dotnet/core/tools/csproj#nuget-metadata-properties에서

: 너무 빨리 게시

답변

1

죄송합니다, 나는 바로 내 눈에서 해결책을 발견했다. 내 경우

, 나는 다음과 같이 PackagePath를 사용해야합니다 (Content도 작동,하지만 마틴 울리히가 지적했듯이, None는 더 나은 선택은 여기) : 항목이 프로젝트에 이미

<ItemGroup> 
    <None Include="build\**" Pack="True" PackagePath="build\" /> 
    </ItemGroup> 
+1

경우 당신이 <없음 업데이트 "..."팩 = "사실은 ..."/ => '대신 콘텐츠 VS 혼동 할 수있는 동일한 파일에 대해 여러 항목을 포함하지'할 수있는 (아마 None' 빌드 작업')를 변경하는 경우 또는 움직이는 것. –