【问题标题】:Is there a way to change MSBuild output directory to a custom project name?有没有办法将 MSBuild 输出目录更改为自定义项目名称?
【发布时间】:2019-10-17 14:38:32
【问题描述】:

我正在尝试将我的打字稿代码编译成 javascript。 我想将它与另一个项目合并,但由于我的主项目是不同的名称,除非我找到一种方法来输出我的文件而完全没有项目名称,或者更改已编译的输出项目名称,否则我无法合并它。我对不同项目也有许多依赖项,项目名称无法更改。我想知道是否可以更改 csproj 文件本身中的名称,或者使用目标来更改输出目录项目名称。

我正在使用 .targets 文件,并且我已经尝试过使用 gulp 和 tsconfig,但没有成功。

文件:

C:\ProjectMain\Project1\ts

helloWorld.ts

C:\ProjectMain\Project1\js >

当前输出:

C:\ProjectMain\Project1\js\Project1

helloWorld.js

想要的输出:

C:\ProjectMain\Project1\js\Project2

helloWorld.js

【问题讨论】:

标签: javascript typescript visual-studio msbuild tsconfig


【解决方案1】:

我正在使用 .targets 文件,并且我已经尝试过使用 gulp 和 tsconfig,但没有运气。

不熟悉如何让它在 tsconfig 中工作。但是您似乎正在使用 msbuild 和目标文件来构建该项目,您可以编辑项目文件以自定义您的构建过程。

由于我们可以在.njsprj(Node.js的项目文件)、.csproj(普通C#项目的项目文件)或xx.targets文件中指定custom target。您可以使用下面的脚本来复制内容从C:\ProjectMain\Project1\js\Project1C:\ProjectMain\Project1\js\Project2

<Project...>
...
  <Target Name="CustomPostBuild" AfterTargets="build">
    <ItemGroup>
      <!--Specify which files we will move-->
      <FilesToMove Include="C:\ProjectMain\Project1\js\Project1\*.*"/> 
    </ItemGroup>
    <MakeDir Directories="C:\ProjectMain\Project1\js\Project2" />
    <Move SourceFiles="@(FilesToMove)" DestinationFolder="C:\ProjectMain\Project1\js\Project2"/>
  </Target>
</Project>

您可以使用msbuild tasks 自定义您的构建,copy taskdelete taskmove task... 这些路径可以替换为$(ProjectDir),$(SolutionDir)...等宏

构建顺序: tsc.exe compile xx.ts 到 xx.js => custom build target

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    • 2014-06-30
    相关资源
    最近更新 更多