2011-04-23 5 views
8

대상 응용 프로그램의 web.config 파일을 수정해야하는 사용자 정의 패키지를 만들고 있지만 설치 후 대상 설정 응용 프로그램에 내 구성 변경 사항이 나타나지 않습니다. appSettings는 섹션에이 키가 적용되지 않습니다NuGet web.config.transform issue

 
<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings> 
    <add key="AppInstalled" value="false"/> 
    </appSettings> 
</configuration> 

:

여기 내 web.config.transform 파일입니다.

여기 내 nuspec 파일입니다 :

nuget pack mvcapp.csproj

어떤 아이디어 :

 
<?xml version="1.0"?> 
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> 
    <metadata> 
    <id>$id$</id> 
    <version>$version$</version> 
    <authors>$author$</authors> 
    <owners>$author$</owners> 
    <licenseUrl>http://mvcapp.codeplex.com/license</licenseUrl> 
    <projectUrl>http://mvcapp.codeplex.com/</projectUrl> 
    <requireLicenseAcceptance>false</requireLicenseAcceptance> 
    <description>$description$</description> 
    <tags>mvc app</tags> 
    </metadata> 
    <files> 
    <file src="\bin\Release\MvcApp.MVC3.dll" target="lib" /> 
    <file src="NuGet\Content\ajax-loader.gif" target="Content" /> 
    <file src="NuGet\Content\web.config.transform" target="web.config" /> 
    <file src="NuGet\Views\Install\Index.aspx" target="Views\Install\Index.aspx" /> 
    </files> 
</package> 

여기가 VS 2010 명령 프롬프트에서 프로젝트를 패키지로 실행 명령입니까?

감사합니다.

답변

19

web.config.transform 파일은 콘텐츠 폴더에 갈 필요 :이 오래된 질문 알고

<file src="NuGet\Content\web.config.transform" target="content" /> 
+3

네, 그건 내 nuspec 파일에서 알아 낸 문제 중 하나였습니다. 문서를 다시 살펴보고 nuspec 파일의 "files"요소를 제거하고 nuspec 파일이있는 폴더 아래에/lib 및/content 폴더와 함께 NuGet 규칙을 사용했습니다. 그것은 나를 위해 훨씬 잘 작동했습니다. 감사. – Kahanu

+0

그 위에, 노드가 대상 솔루션에 이미있는 경우 변환이 작동하지 않는다는 것을 발견했습니다. xdt가 나를 위해 더 잘 작동합니다. Calvin

0

하지만 왜 Web.config를 검색 할 때 상단 구글 결과 중 하나입니다 .transform은 적용되지 않을 것이므로, 여기에 적용 할 때 내가 잘못 됐으면 좋겠다.

TLDR; - 테스트 반복 사이에 대상 프로젝트의 패키지 디렉토리에서 너겟 파일을 지우십시오 (또는 버전 번호를 가정합니다).

정식 버전, 나는이 문제도 가지고 있었다. 내 프로젝트가 적절하게 패키지화 된 NuGet Package Explorer를 사용하여 볼 수있었습니다. "content"아래에 web.config.transform이 있고 각각의 lib 폴더 아래에 내 lib가 있습니다. dll이 배포되고 web.config.transform이 적용되지 않습니다.

내가 테스트 한 대상 프로젝트가 소스 제어하에 있었기 때문에, nuget 패키지를 추가하고 무슨 일이 일어 났는지 확인한 다음 전체 디렉토리를 롤백했습니다. 그러나 패키지 폴더가 소스 제어하에 있지 않다는 것을 알지 못했기 때문에 초기 패키지 설치 폴더가 여기에있었습니다. 나도 그렇게 생각하지 않았기 때문에 패키지 nuspec에서 버전 번호를 늘리지는 않았다.

궁극적으로 프로젝트의 패키지 디렉토리에서 내 너겟 패키지의 디렉토리를 지우고 결국 다음 번 누 구트 설치를 시도하여 다시 만들려고했습니다.