Dotnetcore安装nuget包时不能使用content中的文件
问题:用NUGET打包了一个asp.netcore的项目,试图安装到另一个asp.netcore项目中,除了自动添加引用外,还希望自动释放一些文件以供修改。这些操作以前在netframe中是正常的,脚本如下
<?xml version="1.0"?>
<package>
<metadata>
<id>Q.AspNetCore.Tpl</id>
<version>1.0.7</version>
<title>Q.AspNetCore.Tpl</title>
<authors>Zhangwenxiang</authors>
<owners>Zhangwenxiang</owners>
<licenseUrl>http://www.qoushui.com</licenseUrl>
<projectUrl>http://www.qoushui.com</projectUrl>
<iconUrl>http://www.qoushui.com</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Q.AspNetCore.Tpl</description>
<releaseNotes>整理DOTNETCORE一般需要的文件</releaseNotes>
<copyright>zhangwenxiang</copyright>
<tags>Q.AspNetCore.Tpl</tags>
<dependencies>
<group>
<dependency id="AspNetCoreRateLimit" version="3.0.0" />
<dependency id="CSRedisCore" version="3.0.60" />
<dependency id="QCommon.TimeJob" version="1.0.9" />
<dependency id="System.Text.Encoding.CodePages" version="4.5.1" />
</group>
</dependencies>
</metadata>
<files>
<file src="bin\Release\*\Q.AspNetCore.Tpl.dll" target="lib" />
<file src="*.cs" target="Content" />
<file src="Models\*.cs" target="Content\Models" />
<file src="Controllers\*.cs" target="Content\Controllers" />
<file src="readme.txt" target="" />
<file src="tools\*" target="tools" />
</files>
</package>
@@#
参考
说解决了,但根据他的方法,我并没有解决:
https://q.cnblogs.com/q/114299/
https://github.com/NuGet/Home/issues/6548
老外最后也只能出个提示,让你手工复制
参考
https://weblog.west-wind.com/posts/2018/Jan/29/Distributing-Content-and-Showing-a-ReadMe-file-in-a-NET-Core-Nuget-Package
链接文件(没试过,估计是以前netframe直接添加文件,更新包会覆盖可能修改过的文件的原因,所以搞了个LINK),参考
http://blog.stashev.com/linking-a-file-from-a-nuget-package/
弹出readme,功能正常,参考
PS操纵项目文件参考
https://blog.csdn.net/weixin_34417200/article/details/85998228
最后没办法,添加了init.ps1用于复制文件,代码如下,该方法要求VS必须以管理员身份运行,但它工作也不是很稳定
param($installPath, $toolsPath, $package, $project)
#$installPath = "C:\Users\zwx\.nuget\packages\q.aspnetcore.tpl\1.0.9"
#$projectItemPath = "D:\CodeCard\E云平台\ZY.OPS\ZY.OPS.Client\Program.cs"
Write-Host "haha"
$projectItemPath = $project.ProjectItems.Item("Program.cs").Properties.Item("FullPath").Value
$projectPath = [System.IO.Path]::GetDirectoryName($projectItemPath)
Write-Host "从 $installPath 中复制文件至 $projectPath"
$contentPath = [System.IO.Path]::Combine($installPath,"content")
$len = $contentPath.Length+1;
ForEach($item in get-ChildItem $contentPath -Recurse)
{
if($item -is [System.IO.FileInfo]){
#Write-Host $item.Name
#Write-Host $item.FullName
$targetPath=[System.IO.Path]::Combine($projectPath,$item.FullName.Substring($len))
if([System.IO.File]::Exists($targetPath)){
continue;
}
$tmpPath = [System.IO.Path]::GetDirectoryName($targetPath)
if(![System.IO.Directory]::Exists($tmpPath)){
[System.IO.Directory]::CreateDirectory($tmpPath)
}
[System.IO.File]::Copy($item.FullName,$targetPath,0)
Write-Host "copy file :$item.FullName.Substring($len)"
}
}
@@#
效果图
原文地址:https://www.cnblogs.com/QinQouShui/p/11008659.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 一天一大 lee(相同的树)难度:简单-Day20200807
- 一天一大 lee(解数独)难度:困难-Day20200915
- 一天一大 lee(复原IP地址)难度:中等-Day20200809
- 一天一大 lee(计数二进制子串)难度:简单-Day20200810
- 一天一大 lee(打家劫舍 III)难度:中等-Day20200805
- 一天一大 lee(课程表)难度:中等-Day20200804
- 一天一大 leet(二叉树展开为链表)难度:中等-Day20200802
- 一天一大 leet(字符串相加)难度:简单-Day20200803
- 一天一大 lee(恢复二叉搜索树)难度:困难-Day20200808
- 一天一大 leet(最小区间)难度:困难-Day20200801
- 一天一大 lee(全排列 II)难度:中等-Day20200918
- 一天一大 lee(冗余连接 II)难度:困难-Day20200917
- 一天一大 lee(左叶子之和)难度:简单-Day20200919
- 【一天一大 lee】 把二叉搜索树转换为累加树 (难度:简单)-Day20200921
- 【一天一大 lee】子集 (难度:中等)-Day20200920