[asp.net] Visual Studio 2012 웹 게시에서 파일을 복사하지 않습니다

VS 2012에 웹 응용 프로그램 프로젝트가 있으며 웹 게시 도구를 사용하면 성공적으로 빌드되지만 게시 대상 (이 경우 파일 시스템)에 파일을 복사하지 않습니다.

빌드 출력을 보면 모든 것이 obj \ Release \ Package \ PackageTmp \에 올바르게 복사되는 것을 볼 수 있지만 빌드 출력에 보이는 것은 다음과 같습니다.

4> 빌드 프로젝트 “{Project} .csproj”를 완료했습니다.
4> 기존 파일 삭제 …
4> 게시 폴더 / …
4> ========== 빌드 : 3 성공, 0 실패, 1 최신, 0 건너 뛰기 ===== =====
========== 게시 : 1 성공, 0 실패, 0 건너 뛰기 ==========

공개에 성공했다고하더라도 공개 대상 디렉토리에 파일이 없습니다.

여러 프로젝트에서 이것을 보았고 때로는 솔루션 / 플랫폼 구성으로 인해이 문제가 발생하는 것처럼 보이지만 정확한 원인을 찾아 낼 수 없었습니다.

다른 사람이 이런 일이 발생했거나 올바르게 작동하는 방법에 대한 아이디어가 있습니까?

최신 정보:

이에 대한 해결 방법을 찾았을 것입니다. 방금이 문제가 다시 발생했으며 게시 설정이 엉망이었습니다. 설정 탭에서 선택한 구성을 다른 구성으로 변경 한 다음 다시 구성으로 변경하면 모든 파일을 다시 사용하기를 원했습니다. 바라건대 이것은 앞으로 다른 프로젝트에서 작동하기를 바랍니다.

업데이트 2 :

Microsoft Connect에 버그를 게시하고 VS 웹 개발자 팀의 개발자로부터 답변을 받았습니다. 그는 내부 빌드에서이 문제를 해결했으며 게시 도구에 대한 업데이트를 곧 릴리스하여이 문제를 해결할 것이라고 말했다.

업데이트 3 :

이것은 최근 Visual Studio 2012 업데이트 2에서 수정되었습니다.



답변

이는 RC vsvs2012로 생성 된 솔루션 / 프로젝트로 인해 발생할 수 있습니다. 이것은 몇 달 전에 일어 났으며 솔루션 빌드 구성이 프로젝트 구성과 일치하도록하여 문제를 해결했습니다 …

VS2012 Express for Web을 사용하여 vs2012RC에서 처음 만든 동일한 솔루션을 열 때 최근에 동일한 문제가 발생했습니다. 나는 원래 포스터가 제안한 것을 정확하게 수행했고 내 문제를 해결했다.

다음은 답변으로 연결되는 스레드입니다.

connect.microsoft.com/VisualStudio/feedback/details/746321/publish-web-application-fails

위의 대화에서 나에게 도움이 된 적절한 답변은 다음과 같습니다.

Microsoft가 2012 년 6 월 13 일 12:00 PM에 게시 함 안녕 Andrew,

이는 솔루션 구성과 프로젝트 구성을 처리하는 방식에있어 버그였습니다. 우리는 그것들이 동일하다고 가정했습니다 (예를 들어, 솔루션의 Release | x86은 각각의 프로젝트를 Release | x86로 설정했을 것입니다).

해결 방법은 솔루션 구성 및 빌드 구성을 일치시키는 것입니다. 이 문제는 다음 Visual Studio 2012 릴리스에서 해결 될 예정입니다.

감사합니다-Visual Web Developer 팀 Jimmy Lewis SDET


답변

같은 문제입니다. 해결 방법은 게시 설정을 릴리스에서 디버그로 변경하는 것입니다. 다시 게시 한 다음 다시 릴리스로 변경하십시오.


답변

이것을 조금 더 가져 가려면. 공개 프로파일을 작성할 때 작성되는 두 개의 파일이 있습니다.

  • NewProfile.pubxml
  • NewProfile.pubxml.user

소스 컨트롤의 PublishProfile 폴더에 이러한 파일이있는 프로젝트를 열면 .pubxml파일이 아닌 파일 만 가지 .publxml.user므로 .publxml.user프로젝트를 열 때 파일이 즉시 작성됩니다. .publxml.userXML을 즉시 생성하면 XML은 다음과 같습니다.

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
</Project>

새 프로파일을 작성하면 다음과 같은 xml이 작성됩니다.

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <TimeStampOfAssociatedLegacyPublishXmlFile />
    <EncryptedPassword />
  </PropertyGroup>
</Project>

<PropertyGroup>노드 를 가져 와서 .pubxml.user파일에 넣으면 PublishProfiles가 다시 작동하기 시작합니다.


답변

쉬운 수정 방법은 게시 프로필을 삭제하고 새로 만드는 것입니다.

솔루션을 마우스 오른쪽 단추로 클릭하고 공개를 선택하면 프로파일 세트가 있습니다. 이것을 삭제하고 새로 만드십시오.

이 문제를 해결합니다.

2010에서 2012로 전환하는 데이 문제가있었습니다.


답변

동일한 오류가 발생하여 설정을 릴리스에서 디버그로 변경 하면 문제가 해결되었습니다.


답변

나는이 같은 문제가 있었지만이 스레드의 대답 중 어느 것도 나를 위해 일하지 않았다. 내 문제는 동적으로 생성 된 (내 응용 프로그램에 의해) 정적 HTML 파일이 들어있는 디렉토리가 있다는 것입니다. 전체 디렉토리가 공개되지 않았습니다.

나를 위해 일한 해결책은 여기 에서 발견 되었습니다 .

한 가지 문제가 발생하여 문서를 게시해야한다고 생각한 이유는 프로젝트를 게시 할 때 특정 파일 형식이 업로드되지 않았다는 것입니다.

해당 파일 형식은 .pdf 파일과 .rtf입니다.

이러한 파일 확장자는 Visual Studio에서 게시해야하는 것으로 인식되지 않았기 때문입니다. 다행히 이것은 Visual Studio에서 변경할 수 있습니다.

복사하지 않는 파일을 선택하십시오. 에 등록 이 확인 작업은 빌드 로 설정되어 콘텐츠 .

이것이 작동하지 않으면 다음을 시도 할 수 있습니다.

언더 프로젝트 메뉴 선택 / 패키지를 게시 웹 및이 드롭 다운주의 사항 :

여기에 이미지 설명을 입력하십시오

이 프로젝트 폴더의 모든 파일로 변경하십시오.


답변

이는 .pubxml.user에 공개하는 데 필요한 정보가 포함되어 있고 해당 파일이 소스 제어에 포함되지 않아야하기 때문입니다. 이 VS 버그를 해결하려면 .pubxml.user 파일에서 .pubxml 파일로 정보를 복사하십시오. 관련 특성은 다음과 같습니다.

<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>

그것들을 .pubxml에 넣으면 좋을 것입니다.