비주얼 스튜디오 확장을위한 디자인 타임 플러그인을 설치하고 싶습니다 (예 : 비주얼 스튜디오를 사용할 때 실행되고, 응용 프로그램이 실행 중일 때 실행되지 않습니다). 이 경우 확장 코드가 들어있는 dll을 가리키는 항목으로 app.config를 수정해야합니다. 플러그인은 nuget을 통해 설치되며이 dll을 프로젝트 아래의 폴더에 추가하고 app.config.install.xdt의 고정 경로를 사용하면 모든 작업이 정상적으로 작동합니다. 그러나 내가 원하는 것은 xdt가 nuget을 통해 설치된 패키지 폴더의 dll을 가리키는 값을 삽입하는 것입니다. 내 문제는 프로젝트의 너겟 폴더에 대한 상대 경로가 고정되어 있지 않다는 것입니다. 각 프로젝트는 솔루션 폴더의 직접 하위가 아닌 다른 폴더 (솔루션 폴더 내부 깊숙한 여러 폴더)에있을 수 있으므로 xdt에서 일부 변수를 사용할 수 있기를 원합니다.xdt를 적용 할 때 현재 솔루션의 패키지 폴더 위치를 확인할 수 있습니까?
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<specFlow>
<plugins xdt:Transform="InsertIfMissing">
<add name="NCrunch.Generator" path=".\SpecflowPlugins\" type="Generator" xdt:Transform="InsertIfMissing" xdt:Locator="Match(name)"/>
</plugins>
</specFlow>
</configuration>
하지만 난 이런 걸 원하는 :
현재 내 XDT이이<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<specFlow>
<plugins xdt:Transform="InsertIfMissing">
<add name="NCrunch.Generator" path="$(SolutionDir)\packages\Specflow.Ncrunch.1.0.0\lib\net" type="Generator" xdt:Transform="InsertIfMissing" xdt:Locator="Match(name)"/>
</plugins>
</specFlow>
</configuration>
가 XDT이 가능하다을? 그렇지 않다면 내 nuget 패키지가 설치 될 때 app.config를 올바르게 munge하는 다른 옵션이 있습니까?
나는, 덕분에 그 아이디어를 좋아한다. 나는 그것을 시도하고 내가 할 수있는 것을 보게 될 것이다. –
필자는 마침내이 작업을 시도해 보았습니다. app.config.install.xdt 파일을 수정하더라도 수정되지 않은 버전이 적용된 것처럼 보입니다. 내 app.config가 변경되었지만 원래 값을 사용하여 솔루션의 packages 폴더에서 app.config.install.xdt 파일을 열 때 새 값이 포함되어 있습니다. 오, 잘 install.ps1 (http://stackoverflow.com/a/8449741/97614)에서 수정해야 할 것 같습니다. –