게시할 때 TypeScript 파일을 포함하는 방법은 무엇입니까?
최근에 TypeScript를 사용하기 시작한 MVC 5.1 웹 애플리케이션이 있습니다.소스 매핑을 사용하고 싶어서 프로젝트에 .ts, .js, .js.map-files를 모두 포함시켰습니다.
응용 프로그램(예: 파일 시스템 또는 Azure)을 게시하면 .ts-파일이 아닌 .js 및 .js.min 파일만 복사됩니다.즉, 게시된 사이트에서 소스 매핑을 얻을 수 없습니다.
TypeScript 파일에 "Build Action": "TypeScriptCompile"이 있고 "Do not copy always" 및 "Copy always"로 "Copy to Output Directory"를 테스트했지만 .ts-파일은 게시되지 않습니다.
응용 프로그램을 게시할 때 어떻게 .ts-files를 포함할 수 있습니까?
(업데이트 2에 TypeScript 1.0.1이 설치된 VS2013 업데이트 2와 Web Essentials 2013을 사용하고 있습니다.)
저는 프로젝트(csproj) 파일을 편집하여 이를 달성했습니다..ts 파일(TypeScriptCompile 항목에 저장됨)을 Content 항목에 포함했습니다.
<Target Name="AddTsToContent" AfterTargets="CompileTypeScript" Condition="'$(BuildingProject)' != 'false'">
<ItemGroup>
<Content Include="@(TypeScriptCompile)" Condition="'$(Configuration)'=='Debug'"/>
</ItemGroup>
</Target>
참고: 이러한 조건 때문에, 여기에는 TypeScript 콘텐츠만 포함됩니다.Debug
구성을 빌드합니다.
스타스 베르코프의 답변에 따르면, 조건부로 다음과 같은 내용을 포함하고 있습니다..ts
소스 맵이 생성된 경우에만 파일이 생성됩니다(에서 구성된 대로).TypeScript Build
프로젝트 속성 탭)을 클릭합니다.
<Target Name="AddTsToContent" AfterTargets="CompileTypeScript" Condition="'$(BuildingProject)' != 'false'">
<ItemGroup>
<Content Include="@(TypeScriptCompile)" Condition="'$(TypeScriptSourceMap)' == 'true'"/>
</ItemGroup>
</Target>
이것을 마지막 요소로 배치했습니다.<Project>
의.csproj
파일.
먼저, 게시된 디렉토리에서 파일이 있는지 확인할 수 있습니다.MSBuild를 사용하여 로컬로 복제할 수 있습니다.
msbuild path/to/your/solution.sln-or-project.csproj /p:OutputPath=path/to/outputFolder /p:Configuration=Release
이 명령을 실행한 후 다음 폴더에서 .ts 파일을 검색할 수 있습니다.
outputFolder/_bin/PublishedWebsites/YourProjectName/
프로젝트의 모든 출력은 MSBuild 태스크 "CopyFilesToOutputDirectory"를 실행하는 동안 출력 디렉터리에 복사됩니다.
MSBuild 명령을 실행한 후에도 "항상 복사" 또는 "새로 복사"로 표시된 .ts 파일이 여전히 복사되지 않으면 프로젝트 파일이 "파일을 출력 디렉터리에 복사" 태스크가 정의된 Microsoft에서 제공하는 공통 대상 파일을 가져오지 않을 수 있습니다.
이 경우 아래와 같이 .csproj 파일을 편집하여 적절한 파일에 가져오기 절을 추가합니다.
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
Microsoft를 실행한 후 MSBuild 명령을 다시 실행합니다.WebApplication.targets를 가져왔으며 게시하도록 표시된 파일이 이제 출력 폴더에 있어야 합니다.
@되었습니다. @Stanislav Berkov @Stanislav Berkov @Stanislav Berkov의 솔루션이 포함되었습니다.ts-files
Octopus 배포를 통해 솔루션을 배포할 때 문제가 발생하기 시작했습니다.ts-files
다시 추가되었습니다.
회사의 인료완을 했습니다.msbuild
빌드 서버에서 명령을 실행하고 출력 경로를 추가했습니다.
& "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\msbuild.exe" "C:\Users\MyUser\Documents\Project\Solution\solution.sln" /t:"Clean;Build" /p:Configuration=Release /p:OutputPath="C:\Users\MyUser\Documents\Project\outputFolder" /p:AllowedReferenceRelatedFileExtensions=none /p:RunOctoPack=true /p:OctoPackEnforceAddingFiles=true /p:OctoPackNuGetProperties="env=Test;change=TestChange"
을 보고 ._PublishedWebsites
inoutputFolder all.ts-files
참습니다했석. 된 러그생을 보는 .nupkg
all Octopack all에서 입니다.ts-files
에는 파일이 되어 있지 .Octopack에는 TypeScript 파일이 포함되어 있지 않습니다.
https://help.octopus.com/t/octopack-doesnt-include-typescript-output-files/5009
파일을과 같이 했습니다.<file src="src/**/*.ts" />
.
NuSpec 파일에 디렉터리를 재귀적으로 포함하는 방법
참조용으로 nucspec을 작성합니다.
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>Project.Web.$env$</id>
<version>$version$</version>
<authors>Administrator</authors>
<owners>Administrator</owners>
<licenseUrl>http://example.com</licenseUrl>
<projectUrl>http://example.com</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Project nuget packages</description>
<releaseNotes />
</metadata>
<files>
<file src="src/dist/" target="/" />
<file src="src/**/*.ts" />
</files>
</package>
https://learn.microsoft.com/en-us/nuget/reference/nuspec
저는 이것이 다른 누군가를 위한 시간을 절약하기를 바랍니다!
언급URL : https://stackoverflow.com/questions/24322063/how-to-include-typescript-files-when-publishing
'programing' 카테고리의 다른 글
Oracle 스키마와 Microsoft 스키마의 차이점은 무엇입니까? (0) | 2023.06.10 |
---|---|
Angular2 경로에서 Angular2 경로의 매개 변수를 가져오는 방법은 무엇입니까? (0) | 2023.06.10 |
느린 R 기능의 속도를 높이기 위해 C 코드를 작성하는 방법은 어디서 배울 수 있습니까? (0) | 2023.06.10 |
날짜와 시간이 아닌 시간만 저장하는 방법은 무엇입니까? (0) | 2023.06.10 |
기본적으로 Visual Studio를 관리자로 실행하려면 어떻게 해야 합니까? (0) | 2023.05.31 |