최근에 Visual Studio 2010 서비스 팩 1 용 새 Azure 개발 도구를 설치했습니다. 기존 웹 사이트를 게시하려고 할 때 (파일 시스템 배포 사용) 다음 오류가 발생합니다.
대상 "GatherAllFilesToPublish"가 프로젝트에 없습니다.
아무도 내가 뭘 놓치고 있는지 말해 줄 수 있습니까?
감사
최근에 Visual Studio 2010 서비스 팩 1 용 새 Azure 개발 도구를 설치했습니다. 기존 웹 사이트를 게시하려고 할 때 (파일 시스템 배포 사용) 다음 오류가 발생합니다.
대상 "GatherAllFilesToPublish"가 프로젝트에 없습니다.
아무도 내가 뭘 놓치고 있는지 말해 줄 수 있습니까?
감사
답변:
문제가 뭔지 안다고 생각합니다. Azure SDK 비트를 설치하면 일부 VS Web Publish 업데이트가 설치됩니다. 이 중 하나는 다음 위치에서 파일을 업데이트합니다.
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets
파일에 업데이트 된 타임 스탬프가있는 경우 (어떤 이유로 든) 설정이 정의 된 방식에 따라 새 구성 요소를 설치할 때 파일이 업데이트되지 않습니다.
이 문제를 해결하려면 아래 단계를 따르십시오.
Microsoft.WebApplication.targets
에Microsoft.WebApplication.targets.bak
이 문제가 있었고 다음을 추가하여 수정되었습니다.
<Target Name="GatherAllFilesToPublish">
</Target>
프로젝트 파일에.
이것은 나를 위해 일했습니다. 모든 파일을 수집하여 오류를 게시하십시오.
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
줄 위에 다음을 추가하십시오.
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">13.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
프로젝트를 저장하고 다시로드합니다.
이러한 설치를 제거하면 문제가 해결되었습니다.
VS 2017 에서이 문제가 발생하여 여기에 제안 된대로 csproj 파일을 수동으로 변경하려고 시도했지만 제안 된 수정 사항 중 어느 것도 저에게 효과가 없었습니다. 이 너겟 패키지를 보았습니다. 그것은 나를 위해 일했습니다.
ASP.Net 응용 프로그램을 Windows Azure에 게시하려고 할 때 비슷한 문제가 발생했습니다. 많은 시행 착오 끝에 마침내 이것은 솔루션 저에게 효과적이었습니다. 파일 이름을 바꾸거나 핫픽스 / 패치를 설치 / 다시 설치할 필요가 없습니다. 수행해야 할 작업은 다음과 같습니다.
워드 패드 / 메모장에서 ASP.Net 프로젝트 파일 (.csproj)을 열고 다음과 비슷한 줄을 찾습니다.
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(Solutions.VSVersion)' == '8.0'" />
아래 주어진 줄로 바꿉니다.
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
Conditon="false"
. 또한 작업을 시작하기 전에 프로젝트를 정리하고 다시 빌드해야했습니다.
VS2017과 동일한 문제입니다. 이것을 시도해 볼 수 있습니다.
"WebApplication.targets"키워드 검색
<Import Project="...\WebApplications\Microsoft.WebApplication.targets" ... >
이 줄을 주석 처리하거나 제거합니다 ( "조건"에 따라 두 줄일 수 있음).
이 단계에서는 약 500M의 패키지를 설치하라는 메시지가 표시됩니다.
그 후 프로젝트를 다시로드하면 작동합니다!
VS 2017을 설치할 때 일부 구성 요소를 놓친 것 같습니다.
또한 MSBuild 경로는 VS2017에서 상당히 다르지만 csproj 파일에서 상대 경로를 사용하기 때문에 문제와 관련이 없을 수도 있습니다.
나는 오래된 질문에서 이것을 알고 있지만 최근에 그것을 만났고 여기에 내가 어떻게 해결했는지가 있습니다.
배경 : VS studio 13으로 업그레이드 한 오래된 프로젝트가 있습니다. 프로젝트 파일이 제대로 업그레이드되지 않은 것 같습니다.
csproj 파일에 VS v10.0에 대한 참조가 있지만 실제로 "v12.0"인 VS 13을 실행하고 있습니다.
그래서 csproj 파일에 "v10.0"폴더가 아닌 "v12.0"폴더를 사용하도록 지시했습니다.
이것이 내가 가진 것입니다.
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(SolutionDir)\..\BuildTools\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(SolutionDir)\..\BuildTools\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
이것이 내가 그것을 변경 한 것입니다.
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">12.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
이제 파일 시스템에 대한 게시가 작동합니다!
비슷한 문제가 있었고 Sayed에서 제공하는 단계를 사용하여 해결했습니다.
이름을 바꾼 파일은 v10.0 디렉토리에 있습니다.
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets.
거기에 있던 원본 파일은 2011 년 1 월 18 일에 .bak 확장자로 이름을 바꾼 후 KB2591016을 다시 설치 한 후 게시가 다시 작동하는 것으로 보입니다. Microsoft.WebApplication.targets 파일의 새 날짜는 이제 2011 년 8 월 11 일입니다.
Visual Studio 2013 (및 2015)에서 동일한 문제로 어려움을 겪고 있습니다.
저에게 중요한 수정 사항 VSToolsPath
은 어떤 이유로 든 프로젝트 파일에 누락 된 속성 설정 을 추가 하는 것이 었습니다.
나는 이것을 <PropertyGroup>
지시문에 추가했습니다 .
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
참고로 : 내 프로젝트 파일도 파일의 v10.0 버전을 참조 Microsoft.WebApplication.targets
하지만 괜찮은 것 같습니다.
나는 같은 오류가 있었다. 어쩐지이 줄이 없어졌습니다.
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
바로 아래에 추가했습니다.
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
이제 잘 작동합니다.
VS2013에서 동일한 문제가 발생했습니다. 내가 찾은 해결책은 새로운 빈 웹 응용 프로그램 프로젝트를 만들어 이전 웹 사이트 프로젝트로 다음 줄을 복사 할 수 있다는 것입니다. 맨 위에 :
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
Visual Studio 2017의 경우-.csproj 파일의 블록 뒤에 추가해야합니다. 메모장을 사용하여 ".targets"를 찾아서 찾습니다.
나는 새로운 VS 2017 프로젝트를 만들었고 이것은 나를 위해 일하고 있습니다 (경고 없음).
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
저도 같은 문제를 가지고 : 나는에서 프로젝트를 생성 VS 2010
하고,에서 게시했다 VS 2019
. 여기에있는 해결책 중 어느 것도 나를 위해 일하지 않았으며 약 하루 동안 문제를 해결했습니다.
이 링크에서 작업 한 내용 : http://www.dotnetxp.com/visual-studio-error-publish-target-gatherallfilestopublish-not-exist-project/
이것이 내가 한 일입니다.
** 언로드 된 문제가되는 프로젝트.
** 텍스트 편집기에서 csproj 파일을 엽니 다.
**이 줄 찾기
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
이것으로 교체하십시오. 사용중인 16.0
버전 (vs2019)이기 때문에 사용합니다.
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">16.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v16.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
** 프로젝트를 다시로드하고 게시합니다.
매력처럼 작동했습니다.
VS2012 (Visual Studio 2012)에서 편집하는 경우 VS2010 프로젝트를 사용해보십시오. 다음에서 csproj 파일을 편집합니다.
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
그리고 다음으로 변경하십시오.
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" />
제 측에서는 문제를 재현 할 수 없으므로 SDK를 다시 설치해 보시기 바랍니다.
새 SDK를 설치하기 전에 이전 SDK를 완전히 제거하십시오.
친애하는,
Ming Xu.
내가 수정 한 동일한 문제. 일부 파일이 솔루션에 누락되었는지 확인하십시오. 다음과 같은 오류가 발생하면Error - The target "GatherAllFilesToPublish" does not exist in the project.
다음 .proj 파일을 열고이 줄을 삭제하십시오.<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
실제 오류 또는 누락 된 파일을 솔루션으로 가져옵니다.