Visual Studio 2017 RC 如何在csproj文件中指定发布选项

Visual Studio 2017 RC How to specify Publishing Options in the csproj file

我一直在研究 VS2017 RC。

我最终想从 ASPNETCORE 项目中 运行 一个 React SPA 项目。为此,我基于此的模板是带有 project.json 文件的 VS2015 模板。

在 VS2015 project.json 文件中,我有两项通常不会出现在标准 ASPNETCORE 模板中。

我想包括的两件事如下:

 "publishOptions": {
"include": [
  "wwwroot",
  "web.config"
],
"exclude": [
  "node_modules",
  "**.xproj",
  "**.user",
  "**.vspscc"
  ]
},

  "scripts": {
    "prepublish": [
    "npm install",
    "node node_modules/webpack/bin/webpack.js --config    webpack.config.vendor.js",
    "node node_modules/webpack/bin/webpack.js"
],

关于您将其添加到 csproj 文件的位置,我进行了多次调查。我曾尝试修改 csproj 文件,但在我这样做之后项目崩溃并以各种错误和警告结束。

如何通过VS2017将这些添加到项目中?

如何在项目外修改 csproj 文件而不会使项目崩溃。

可以参考Project.json to MSBuild conversion guide

脚本:

{
  "scripts": {
    "precompile": "generateCode.cmd",
    "postpublish": [ "obfuscate.cmd", "removeTempFiles.cmd" ]
  }
}

<Target Name="MyPreCompileTarget" BeforeTargets="Build">
  <Exec Command="generateCode.cmd" />
</Target>

<Target Name="MyPostCompileTarget" AfterTargets="Publish">
  <Exec Command="obfuscate.cmd" />
  <Exec Command="removeTempFiles.cmd" />
</Target>

发布选项:

  "publishOptions": {
    "include": [
      "files/",
      "publishnotes.txt"
    ]
  }

<ItemGroup> 
  <Content Include="files\**\*" CopyToPublishDirectory="PreserveNewest" />
  <None Include="publishnotes.txt" CopyToPublishDirectory="Always" />
  <!-- CopyToPublishDirectory = { Always, PreserveNewest, Never } -->
</ItemGroup>

我通常使用记事本或记事本++编辑.csporj 然后重新打开visual studio 2017 :)